1789595935
c05b9b66eacc8e11cfd97f370d355f8b-phpdoc%3A23caf47c47185ec7c0c100877b28f707-8d45a4c245962dc63213934604181a98
s:8744:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjEyOiJjbGllbnRlcy5waHAiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YTowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fXM6NDA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZW51bXMiO2E6MDp7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiOGQ0NWE0YzI0NTk2MmRjNjMyMTM5MzQ2MDQxODFhOTgiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czozMzoiYmFja2VuZC9hcGkvdjIvcnV0YXMvY2xpZW50ZXMucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czo0MjU0OiI8P3BocA0KZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7DQoNCi8qKg0KICogUnV0YXMgZGUgQ0xJRU5URVMg4oCUIGRhdG9zIGRlIGNsaWVudGVzIHkgc3VzIG1hdHLDrWN1bGFzLg0KICoNCiAqIFZhcmlhcyBhY2Npb25lcyBzZSBjb25zdW1lbiBkZXNkZSBtw6FzIGRlIHVuYSBww6FnaW5hOyBlbiBlc29zIGNhc29zIHNlDQogKiBkZWNsYXJhIGxhIGxpc3RhIGNvbXBsZXRhIHkgYmFzdGEgY29uIHRlbmVyIHBlcm1pc28gZW4gY3VhbHF1aWVyYSBkZQ0KICogZWxsYXMgc29icmUgbGFzIGNvbmV4aW9uZXMgc29saWNpdGFkYXMuDQogKg0KICogQHBhY2thZ2UgdHJhY2tpbmdcYmFja2VuZFxhcGlcdjJccnV0YXMNCiAqLw0KDQpyZXR1cm4gWw0KDQogICAgLy8g4pSA4pSAIENBVMOBTE9HT1MgWSBMSVNUQURPUyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIANCg0KICAgICdnZXRfY2F0YWxvZ29zX2NsaWVudGVzJyA9PiBuZXcgUnV0YSgNCiAgICAgICAgYWNjZXNvOiAgQWNjZXNvOjpBVVRFTlRJQ0FETywNCiAgICAgICAgYW1iaXRvOiAgQW1iaXRvOjpUUkFDS0lORywNCiAgICAgICAgaGFuZGxlcjogc3RhdGljIGZ1bmN0aW9uIChDb250ZXh0byAkY3R4KTogbmV2ZXIgew0KICAgICAgICAgICAgUmVzcHVlc3RhOjpkZWxDb250cm9sYWRvcigNCiAgICAgICAgICAgICAgICBDb250cm9sYWRvckNsaWVudGU6OmdldENhdGFsb2dvcygkY3R4LT5jb25leGlvbklkcykNCiAgICAgICAgICAgICk7DQogICAgICAgIH0sDQogICAgICAgIHBhZ2luYTogJy9wYWdlcy9jbGllbnRlcycNCiAgICApLA0KDQogICAgJ2dldF9jbGllbnRlcycgPT4gbmV3IFJ1dGEoDQogICAgICAgIGFjY2VzbzogIEFjY2Vzbzo6QVVURU5USUNBRE8sDQogICAgICAgIGFtYml0bzogIEFtYml0bzo6VFJBQ0tJTkcsDQogICAgICAgIGhhbmRsZXI6IHN0YXRpYyBmdW5jdGlvbiAoQ29udGV4dG8gJGN0eCk6IG5ldmVyIHsNCiAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZGVsQ29udHJvbGFkb3IoDQogICAgICAgICAgICAgICAgQ29udHJvbGFkb3JDbGllbnRlOjpnZXRDbGllbnRlcygkY3R4LT5jb25leGlvbklkcykNCiAgICAgICAgICAgICk7DQogICAgICAgIH0sDQogICAgICAgIHBhZ2luYTogWycvcGFnZXMvZGVwb3NpdG9zJywgJy9wYWdlcy9jbGllbnRlcyddDQogICAgKSwNCg0KICAgICdnZXRfY2xpZW50ZXNfc2FsaWRhcycgPT4gbmV3IFJ1dGEoDQogICAgICAgIGFjY2VzbzogIEFjY2Vzbzo6QVVURU5USUNBRE8sDQogICAgICAgIGFtYml0bzogIEFtYml0bzo6VFJBQ0tJTkcsDQogICAgICAgIGhhbmRsZXI6IHN0YXRpYyBmdW5jdGlvbiAoQ29udGV4dG8gJGN0eCk6IG5ldmVyIHsNCiAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZGVsQ29udHJvbGFkb3IoDQogICAgICAgICAgICAgICAgQ29udHJvbGFkb3JTYWxpZGFzOjpnZXRDbGllbnRlcygkY3R4LT5jb25leGlvbklkcykNCiAgICAgICAgICAgICk7DQogICAgICAgIH0sDQogICAgICAgIHBhZ2luYTogJy9wYWdlcy9ncmFuZWwnDQogICAgKSwNCg0KICAgIC8vIOKUgOKUgCBFU0NSSVRVUkEgREUgQ0xJRU5URVMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCiAgICAnY3JlYXJfY2xpZW50ZScgPT4gbmV3IFJ1dGEoDQogICAgICAgIGFjY2VzbzogIEFjY2Vzbzo6QVVURU5USUNBRE8sDQogICAgICAgIGFtYml0bzogIEFtYml0bzo6VFJBQ0tJTkcsDQogICAgICAgIGhhbmRsZXI6IHN0YXRpYyBmdW5jdGlvbiAoQ29udGV4dG8gJGN0eCk6IG5ldmVyIHsNCiAgICAgICAgICAgICRkYXRhID0gJGN0eC0+anNvbigpOw0KICAgICAgICAgICAgaWYgKGVtcHR5KCRkYXRhKSkgew0KICAgICAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZXJyb3IoJ05vIHNlIHJlY2liaWVyb24gZGF0b3MuJywgNDAwKTsNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgUmVzcHVlc3RhOjpkZWxDb250cm9sYWRvcigNCiAgICAgICAgICAgICAgICBDb250cm9sYWRvckNsaWVudGU6OmNyZWFyKCRjdHgtPmNvbmV4aW9uSWRzLCAkZGF0YSkNCiAgICAgICAgICAgICk7DQogICAgICAgIH0sDQogICAgICAgIHBhZ2luYTogJy9wYWdlcy9jbGllbnRlcycNCiAgICApLA0KDQogICAgLy8gRW4gbGEgdjEgaWJhIGNvbiByZXF1aXJlQXV0aEFwaTogbm8gdmFsaWRhYmEgcGVybWlzbyBzb2JyZSBsYSBjb25leGnDs24NCiAgICAvLyBwZXNlIGEgZXNjcmliaXIgZW4gdW5hIGJhc2UgZGUgZXhwbG90YWNpw7NuLg0KICAgICdhY3R1YWxpemFyX2NsaWVudGUnID0+IG5ldyBSdXRhKA0KICAgICAgICBhY2Nlc286ICBBY2Nlc286OkFVVEVOVElDQURPLA0KICAgICAgICBhbWJpdG86ICBBbWJpdG86OlRSQUNLSU5HLA0KICAgICAgICBoYW5kbGVyOiBzdGF0aWMgZnVuY3Rpb24gKENvbnRleHRvICRjdHgpOiBuZXZlciB7DQogICAgICAgICAgICAkZGF0YSA9ICRjdHgtPmpzb24oKTsNCiAgICAgICAgICAgIGlmIChlbXB0eSgkZGF0YSkpIHsNCiAgICAgICAgICAgICAgICBSZXNwdWVzdGE6OmVycm9yKCdObyBzZSByZWNpYmllcm9uIGRhdG9zLicsIDQwMCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZGVsQ29udHJvbGFkb3IoQ29udHJvbGFkb3JDbGllbnRlOjphY3R1YWxpemFyKCRkYXRhKSk7DQogICAgICAgIH0sDQogICAgICAgIHBhZ2luYTogJy9wYWdlcy9jbGllbnRlcycNCiAgICApLA0KDQogICAgLy8g4pSA4pSAIE1BVFLDjUNVTEFTIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgA0KDQogICAgJ2dldF9tYXRyaWN1bGFzX2NsaWVudGUnID0+IG5ldyBSdXRhKA0KICAgICAgICBhY2Nlc286ICBBY2Nlc286OkFVVEVOVElDQURPLA0KICAgICAgICBhbWJpdG86ICBBbWJpdG86OlRSQUNLSU5HLA0KICAgICAgICBoYW5kbGVyOiBzdGF0aWMgZnVuY3Rpb24gKENvbnRleHRvICRjdHgpOiBuZXZlciB7DQogICAgICAgICAgICBSZXNwdWVzdGE6OmRlbENvbnRyb2xhZG9yKENvbnRyb2xhZG9yU2FsaWRhczo6Z2V0TWF0cmljdWxhc0NsaWVudGUoDQogICAgICAgICAgICAgICAgJGN0eC0+cG9zdEludCgnaWRDbGllbnRlJyksDQogICAgICAgICAgICAgICAgJGN0eC0+Y29uZXhpb25JZHMNCiAgICAgICAgICAgICkpOw0KICAgICAgICB9LA0KICAgICAgICBwYWdpbmE6IFsnL3BhZ2VzL2dyYW5lbCcsICcvcGFnZXMvZGVwb3NpdG9zJ10NCiAgICApLA0KDQogICAgJ2FkZF9tYXRyaWN1bGFfY2xpZW50ZScgPT4gbmV3IFJ1dGEoDQogICAgICAgIGFjY2VzbzogIEFjY2Vzbzo6QVVURU5USUNBRE8sDQogICAgICAgIGFtYml0bzogIEFtYml0bzo6VFJBQ0tJTkcsDQogICAgICAgIGhhbmRsZXI6IHN0YXRpYyBmdW5jdGlvbiAoQ29udGV4dG8gJGN0eCk6IG5ldmVyIHsNCiAgICAgICAgICAgICRpZENsaWVudGUgPSAkY3R4LT5wb3N0SW50KCdpZENsaWVudGUnKTsNCiAgICAgICAgICAgICRtYXRyaWN1bGEgPSB0cmltKCRjdHgtPnBvc3QoJ25NYXRyaWN1bGEnKSk7DQoNCiAgICAgICAgICAgIGlmICgkaWRDbGllbnRlIDw9IDApICBSZXNwdWVzdGE6OmVycm9yKCdGYWx0YSBlbCBjbGllbnRlLicsIDQwMCk7DQogICAgICAgICAgICBpZiAoJG1hdHJpY3VsYSA9PT0gJycpIFJlc3B1ZXN0YTo6ZXJyb3IoJ0xhIG1hdHLDrWN1bGEgZXMgb2JsaWdhdG9yaWEuJywgNDAwKTsNCg0KICAgICAgICAgICAgUmVzcHVlc3RhOjpkZWxDb250cm9sYWRvcihDb250cm9sYWRvclNhbGlkYXM6OmFkZE1hdHJpY3VsYUNsaWVudGUoDQogICAgICAgICAgICAgICAgJGlkQ2xpZW50ZSwNCiAgICAgICAgICAgICAgICAkbWF0cmljdWxhLA0KICAgICAgICAgICAgICAgICRjdHgtPmNvbmV4aW9uSWRzDQogICAgICAgICAgICApKTsNCiAgICAgICAgfSwNCiAgICAgICAgcGFnaW5hOiAnL3BhZ2VzL2dyYW5lbCcNCiAgICApLA0KXTsiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjU4OiJSdXRhcyBkZSBDTElFTlRFUyDigJQgZGF0b3MgZGUgY2xpZW50ZXMgeSBzdXMgbWF0csOtY3VsYXMuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE4MDoiVmFyaWFzIGFjY2lvbmVzIHNlIGNvbnN1bWVuIGRlc2RlIG3DoXMgZGUgdW5hIHDDoWdpbmE7IGVuIGVzb3MgY2Fzb3Mgc2UKZGVjbGFyYSBsYSBsaXN0YSBjb21wbGV0YSB5IGJhc3RhIGNvbiB0ZW5lciBwZXJtaXNvIGVuIGN1YWxxdWllcmEgZGUKZWxsYXMgc29icmUgbGFzIGNvbmV4aW9uZXMgc29saWNpdGFkYXMuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJwYWNrYWdlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyOToidHJhY2tpbmdcYmFja2VuZFxhcGlcdjJccnV0YXMiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czowOiIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjA6e319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG1ldGFkYXRhIjthOjA6e319";