1789595936
c05b9b66eacc8e11cfd97f370d355f8b-phpdoc%3Aadb4e2f20af29a41b516f6ecfd640424-66d5bbc55f56a959831dc6d077726f91
s:8912:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjE1OiJwcm92ZWVkb3Jlcy5waHAiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YTowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fXM6NDA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZW51bXMiO2E6MDp7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiNjZkNWJiYzU1ZjU2YTk1OTgzMWRjNmQwNzc3MjZmOTEiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czo0MDoiYmFja2VuZC9hcGkvdjJwZ2dwL3J1dGFzL3Byb3ZlZWRvcmVzLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6NDU0NDoiPD9waHANCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOw0KDQovKioNCiAqIFJ1dGFzIGRlIFBST1ZFRURPUkVTIOKAlCBkYXRvcyBkZSBwcm92ZWVkb3JlcyB5IHN1cyBtYXRyw61jdWxhcy4NCiAqDQogKiBAcGFja2FnZSB0cmFja2luZ1xiYWNrZW5kXGFwaVx2MlxydXRhcw0KICovDQoNCnJldHVybiBbDQoNCiAgICAvLyDilIDilIAgQ0FUw4FMT0dPUyBZIExJU1RBRE9TIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgA0KDQogICAgJ2dldF9jYXRhbG9nb3NfcHJvdmVlZG9yZXMnID0+IG5ldyBSdXRhKA0KICAgICAgICBhY2Nlc286ICBBY2Nlc286OkFVVEVOVElDQURPLA0KICAgICAgICBhbWJpdG86ICBBbWJpdG86OlRSQUNLSU5HLA0KICAgICAgICBoYW5kbGVyOiBzdGF0aWMgZnVuY3Rpb24gKENvbnRleHRvICRjdHgpOiBuZXZlciB7DQogICAgICAgICAgICBSZXNwdWVzdGE6OmRlbENvbnRyb2xhZG9yKA0KICAgICAgICAgICAgICAgIENvbnRyb2xhZG9yUHJvdmVlZG9yOjpnZXRDYXRhbG9nb3MoJGN0eC0+Y29uZXhpb25JZHMpDQogICAgICAgICAgICApOw0KICAgICAgICB9LA0KICAgICAgICBwYWdpbmE6ICcvcGFnZXMvcHJvdmVlZG9yZXMnDQogICAgKSwNCg0KICAgIC8vIEVuIGxhIHYxIGVzdGEgYWNjacOzbiB5IGdldF9wcm92ZWVkb3JlcyBjb21wYXJ0w61hbiBlbCBtaXNtbyBjYXNlLg0KICAgIC8vIFNlIG1hbnRpZW5lbiBzZXBhcmFkYXMgcG9ycXVlIGNhZGEgdW5hIHNlIGNvbnN1bWUgZGVzZGUgdW5hIHDDoWdpbmENCiAgICAvLyBkaXN0aW50YSwgYXVucXVlIGVsIGhhbmRsZXIgc2VhIGlkw6ludGljby4NCiAgICAnZ2V0X3Byb3ZlZWRvcmVzX2VudHJhZGFzJyA9PiBuZXcgUnV0YSgNCiAgICAgICAgYWNjZXNvOiAgQWNjZXNvOjpBVVRFTlRJQ0FETywNCiAgICAgICAgYW1iaXRvOiAgQW1iaXRvOjpUUkFDS0lORywNCiAgICAgICAgaGFuZGxlcjogc3RhdGljIGZ1bmN0aW9uIChDb250ZXh0byAkY3R4KTogbmV2ZXIgew0KICAgICAgICAgICAgUmVzcHVlc3RhOjpkZWxDb250cm9sYWRvcigNCiAgICAgICAgICAgICAgICBDb250cm9sYWRvclByb3ZlZWRvcjo6Z2V0TGlzdGFkbygkY3R4LT5jb25leGlvbklkcykNCiAgICAgICAgICAgICk7DQogICAgICAgIH0sDQogICAgICAgIHBhZ2luYTogJy9wYWdlcy9lbnRyYWRhcycNCiAgICApLA0KDQogICAgJ2dldF9wcm92ZWVkb3JlcycgPT4gbmV3IFJ1dGEoDQogICAgICAgIGFjY2VzbzogIEFjY2Vzbzo6QVVURU5USUNBRE8sDQogICAgICAgIGFtYml0bzogIEFtYml0bzo6VFJBQ0tJTkcsDQogICAgICAgIGhhbmRsZXI6IHN0YXRpYyBmdW5jdGlvbiAoQ29udGV4dG8gJGN0eCk6IG5ldmVyIHsNCiAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZGVsQ29udHJvbGFkb3IoDQogICAgICAgICAgICAgICAgQ29udHJvbGFkb3JQcm92ZWVkb3I6OmdldExpc3RhZG8oJGN0eC0+Y29uZXhpb25JZHMpDQogICAgICAgICAgICApOw0KICAgICAgICB9LA0KICAgICAgICBwYWdpbmE6IFsnL3BhZ2VzL3Byb3ZlZWRvcmVzJywgJy9wYWdlcy9lbnRyYWRhcyddDQogICAgKSwNCg0KICAgIC8vIOKUgOKUgCBFU0NSSVRVUkEg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCiAgICAnY3JlYXJfcHJvdmVlZG9yJyA9PiBuZXcgUnV0YSgNCiAgICAgICAgYWNjZXNvOiAgQWNjZXNvOjpBVVRFTlRJQ0FETywNCiAgICAgICAgYW1iaXRvOiAgQW1iaXRvOjpUUkFDS0lORywNCiAgICAgICAgaGFuZGxlcjogc3RhdGljIGZ1bmN0aW9uIChDb250ZXh0byAkY3R4KTogbmV2ZXIgew0KICAgICAgICAgICAgJGRhdG9zID0gJGN0eC0+anNvbigpOw0KICAgICAgICAgICAgaWYgKGVtcHR5KCRkYXRvcykpIHsNCiAgICAgICAgICAgICAgICBSZXNwdWVzdGE6OmVycm9yKCdEYXRvcyB2YWPDrW9zLicsIDQwMCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZGVsQ29udHJvbGFkb3IoDQogICAgICAgICAgICAgICAgQ29udHJvbGFkb3JQcm92ZWVkb3I6OmNyZWFyKCRkYXRvcywgJGN0eC0+Y29uZXhpb25JZHMpDQogICAgICAgICAgICApOw0KICAgICAgICB9LA0KICAgICAgICBwYWdpbmE6ICcvcGFnZXMvcHJvdmVlZG9yZXMnDQogICAgKSwNCg0KICAgIC8vIEVuIGxhIHYxIGliYSBjb24gcmVxdWlyZUF1dGhBcGkgeSB0b21hYmEgbGEgY29uZXhpw7NuIGRlIGRlbnRybyBkZWwNCiAgICAvLyBwcm9waW8gcGF5bG9hZCAoZGF0b3NbJ2NvbmV4aW9uX2lkJ10pLCBzaW4gdmFsaWRhciBwZXJtaXNvIHNvYnJlIGVsbGEuDQogICAgJ2FjdHVhbGl6YXJfcHJvdmVlZG9yJyA9PiBuZXcgUnV0YSgNCiAgICAgICAgYWNjZXNvOiAgQWNjZXNvOjpBVVRFTlRJQ0FETywNCiAgICAgICAgYW1iaXRvOiAgQW1iaXRvOjpUUkFDS0lORywNCiAgICAgICAgaGFuZGxlcjogc3RhdGljIGZ1bmN0aW9uIChDb250ZXh0byAkY3R4KTogbmV2ZXIgew0KICAgICAgICAgICAgJGRhdG9zID0gJGN0eC0+anNvbigpOw0KICAgICAgICAgICAgaWYgKGVtcHR5KCRkYXRvc1snaWQnXSkpIHsNCiAgICAgICAgICAgICAgICBSZXNwdWVzdGE6OmVycm9yKCdGYWx0YSBlbCBpZCBkZWwgcHJvdmVlZG9yLicsIDQwMCk7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIC8vIExhIGNvbmV4acOzbiBwYXNhIGEgc2VyIGxhIHlhIHZhbGlkYWRhIHBvciBlbCBndWFyZCwgbm8gbGEgcXVlDQogICAgICAgICAgICAvLyB2ZW5nYSBlbiBlbCBjdWVycG8gZGUgbGEgcGV0aWNpw7NuLg0KICAgICAgICAgICAgJGRhdG9zWydjb25leGlvbl9pZCddID0gJGN0eC0+Y29uZXhpb24oKTsNCg0KICAgICAgICAgICAgUmVzcHVlc3RhOjpkZWxDb250cm9sYWRvcihDb250cm9sYWRvclByb3ZlZWRvcjo6YWN0dWFsaXphcigkZGF0b3MpKTsNCiAgICAgICAgfSwNCiAgICAgICAgcGFnaW5hOiAnL3BhZ2VzL3Byb3ZlZWRvcmVzJw0KICAgICksDQoNCiAgICAvLyDilIDilIAgTUFUUsONQ1VMQVMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSADQoNCiAgICAnZ2V0X21hdHJpY3VsYXNfcHJvdmVlZG9yJyA9PiBuZXcgUnV0YSgNCiAgICAgICAgYWNjZXNvOiAgQWNjZXNvOjpBVVRFTlRJQ0FETywNCiAgICAgICAgYW1iaXRvOiAgQW1iaXRvOjpUUkFDS0lORywNCiAgICAgICAgaGFuZGxlcjogc3RhdGljIGZ1bmN0aW9uIChDb250ZXh0byAkY3R4KTogbmV2ZXIgew0KICAgICAgICAgICAgUmVzcHVlc3RhOjpkZWxDb250cm9sYWRvcihDb250cm9sYWRvck1hdHJpY3VsYVByb3ZlZWRvcjo6Z2V0QnlQcm92ZWVkb3IoDQogICAgICAgICAgICAgICAgJGN0eC0+cG9zdEludCgnaWRQcm92ZWVkb3InKSwNCiAgICAgICAgICAgICAgICAkY3R4LT5jb25leGlvbklkcw0KICAgICAgICAgICAgKSk7DQogICAgICAgIH0sDQogICAgICAgIHBhZ2luYTogJy9wYWdlcy9lbnRyYWRhcycNCiAgICApLA0KDQogICAgJ2FkZF9tYXRyaWN1bGFfcHJvdmVlZG9yJyA9PiBuZXcgUnV0YSgNCiAgICAgICAgYWNjZXNvOiAgQWNjZXNvOjpBVVRFTlRJQ0FETywNCiAgICAgICAgYW1iaXRvOiAgQW1iaXRvOjpUUkFDS0lORywNCiAgICAgICAgaGFuZGxlcjogc3RhdGljIGZ1bmN0aW9uIChDb250ZXh0byAkY3R4KTogbmV2ZXIgew0KICAgICAgICAgICAgJGlkUHJvdmVlZG9yID0gJGN0eC0+cG9zdEludCgnaWRQcm92ZWVkb3InKTsNCiAgICAgICAgICAgICRtYXRyaWN1bGEgICA9IHRyaW0oJGN0eC0+cG9zdCgnbk1hdHJpY3VsYScpKTsNCg0KICAgICAgICAgICAgaWYgKCRpZFByb3ZlZWRvciA8PSAwKSAgUmVzcHVlc3RhOjplcnJvcignRmFsdGEgZWwgcHJvdmVlZG9yLicsIDQwMCk7DQogICAgICAgICAgICBpZiAoJG1hdHJpY3VsYSA9PT0gJycpICBSZXNwdWVzdGE6OmVycm9yKCdMYSBtYXRyw61jdWxhIGVzIG9ibGlnYXRvcmlhLicsIDQwMCk7DQoNCiAgICAgICAgICAgIFJlc3B1ZXN0YTo6ZGVsQ29udHJvbGFkb3IoQ29udHJvbGFkb3JNYXRyaWN1bGFQcm92ZWVkb3I6Omluc2VydCgNCiAgICAgICAgICAgICAgICAkaWRQcm92ZWVkb3IsDQogICAgICAgICAgICAgICAgJG1hdHJpY3VsYSwNCiAgICAgICAgICAgICAgICAkY3R4LT5jb25leGlvbklkcw0KICAgICAgICAgICAgKSk7DQogICAgICAgIH0sDQogICAgICAgIHBhZ2luYTogJy9wYWdlcy9lbnRyYWRhcycNCiAgICApLA0KXTsiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjY0OiJSdXRhcyBkZSBQUk9WRUVET1JFUyDigJQgZGF0b3MgZGUgcHJvdmVlZG9yZXMgeSBzdXMgbWF0csOtY3VsYXMuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoicGFja2FnZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mjk6InRyYWNraW5nXGJhY2tlbmRcYXBpXHYyXHJ1dGFzIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBtZXRhZGF0YSI7YTowOnt9fQ==";