1781727472
c05b9b66eacc8e11cfd97f370d355f8b-phpdoc%3A3682b8d35152650308c657ffe3efe911-708a8ec741dcbfa306672e29f7600316
s:33488:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjc6ImFwaS5waHAiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YTowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6Mzp7czoxNToiXGpzb25SZXNwb25zZSgpIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXyI6OTp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoiZGF0YSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo2OiJzdGF0dXMiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbiI6Mjp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBleHByZXNzaW9uIjtzOjM6IjIwMCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBwYXJ0cyI7YTowOnt9fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTmV2ZXJfIjowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTU6Ilxqc29uUmVzcG9uc2UoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEyOiJqc29uUmVzcG9uc2UiO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AZG9jQmxvY2siO047czo2MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAG1ldGFkYXRhIjthOjA6e31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AYXR0cmlidXRlcyI7YTowOnt9fXM6MTc6IlxyZXF1aXJlQXV0aEFwaSgpIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXyI6OTp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGFyZ3VtZW50cyI7YTowOnt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjUyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxNzoiXHJlcXVpcmVBdXRoQXBpKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNDoicmVxdWlyZUF1dGhBcGkiO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjM4OiJWYWxpZGEgc2VzacOzbiBhY3RpdmEgKyBiaW5kaW5nIElQL1VBLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyNTg6IkFib3J0YSBjb24gNDAxIHNpIG5vIHN1cGVyYSBsYSBjb21wcm9iYWNpw7NuLgoKUmVub21icmFkYSByZXNwZWN0byBhIGF1dGhfZ3VhcmQ6OnJlcXVpcmVBdXRoUGFnZSBwYXJhIGRpZmVyZW5jaWFyOgogLSByZXF1aXJlQXV0aEFwaSgpICDihpIgZW5kcG9pbnRzIChlc3RlIGFyY2hpdm8pIOKGkiByZXNwb25kZSBKU09OIDQwMQogLSByZXF1aXJlQXV0aFBhZ2UoKSDihpIgcMOhZ2luYXMgLnBocCAgICAgICAgICAgICDihpIgcmVkaXJpZ2UgYSBsb2dpbiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NjA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBtZXRhZGF0YSI7YTowOnt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjE4OiJccmVxdWlyZVBlcm1pc29zKCkiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fIjo5OntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AYXJndW1lbnRzIjthOjA6e31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjYyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NzM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjE4OiJccmVxdWlyZVBlcm1pc29zKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToicmVxdWlyZVBlcm1pc29zIjt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoxMTU6IlZhbGlkYSBxdWUgZWwgdXN1YXJpbyB0aWVuZSBwZXJtaXNvIHBhcmEgdW5hIHDDoWdpbmEgc29icmUgVE9EQVMgbGFzCmNvbmV4aW9uZXMgcmVjaWJpZGFzLiBBYm9ydGEgY29uIDQwMyBzaSBmYWxsYS4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NTU6IkxlZSBgcGFnaW5hX2lkYCB5IGBjb25leGlvbl9pZHNgIChKU09OIGFycmF5KSBkZWwgUE9TVC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086NDc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQc2V1ZG9UeXBlc1xBcnJheVNoYXBlIjoxOntzOjU0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBzZXVkb1R5cGVzXEFycmF5U2hhcGUAaXRlbXMiO2E6Mjp7aTowO086NTE6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQc2V1ZG9UeXBlc1xBcnJheVNoYXBlSXRlbSI6Mzp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQc2V1ZG9UeXBlc1xTaGFwZUl0ZW0Aa2V5IjtzOjg6InBhZ2luYUlkIjtzOjUzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBzZXVkb1R5cGVzXFNoYXBlSXRlbQB2YWx1ZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBzZXVkb1R5cGVzXFNoYXBlSXRlbQBvcHRpb25hbCI7YjowO31pOjE7Tzo1MToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBzZXVkb1R5cGVzXEFycmF5U2hhcGVJdGVtIjozOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBzZXVkb1R5cGVzXFNoYXBlSXRlbQBrZXkiO3M6MTE6ImNvbmV4aW9uSWRzIjtzOjUzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBzZXVkb1R5cGVzXFNoYXBlSXRlbQB2YWx1ZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUHNldWRvVHlwZXNcU2hhcGVJdGVtAG9wdGlvbmFsIjtiOjA7fX19fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NTQ7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjYwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AbWV0YWRhdGEiO2E6MDp7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBhdHRyaWJ1dGVzIjthOjA6e319fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fXM6NDA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZW51bXMiO2E6MDp7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiNzA4YThlYzc0MWRjYmZhMzA2NjcyZTI5Zjc2MDAzMTYiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czoxNToiYmFja2VuZC9hcGkucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czoxNDQ4OToiPD9waHAKLyoqCiAqIEVucnV0YWRvciBwcmluY2lwYWwgZGUgbGEgQVBJIChGcm9udCBDb250cm9sbGVyKS4KICoKICogw5puaWNvIHB1bnRvIGRlIGVudHJhZGEgcGFyYSB0b2RhcyBsYXMgcGV0aWNpb25lcyBBSkFYIGRlbCBmcm9udGVuZC4KICogQ29udmVuY2nDs24gZGUgY3VlcnBvOgogKgogKiAgIC0gVG9kb3MgbG9zIGVuZHBvaW50cyBzb24gUE9TVC4KICogICAtIEVsIGNsaWVudGUgZXNwZWNpZmljYSBgYWN0aW9uYC4KICogICAtIFBhcmEgZW5kcG9pbnRzIHF1ZSBvcGVyYW4gc29icmUgQkRzIHRyYWNraW5nLCBkZWJlIGVudmlhcjoKICogICAgICAgICBwYWdpbmFfaWQgICA6IGlkIGRlIGxhIHDDoWdpbmEgb3JpZ2VuIGRlIGxhIHBldGljacOzbgogKiAgICAgICAgIGNvbmV4aW9uX2lkczogSlNPTiBjb24gbGEgbGlzdGEgZGUgY29uZXhpb25faWRzIGVsZWdpZG9zCiAqICAgICAgICAgICAgICAgICAgICAgICAodW5vIHNvbG8gcGFyYSBlc2NyaXR1cmFzLCB2YXJpb3MgcGFyYSBsZWN0dXJhcykKICoKICogQHBhY2thZ2UgdHJhY2tpbmd3ZWJcYmFja2VuZAogKi8KCnJlcXVpcmVfb25jZSBfX0RJUl9fIC4gJy9ib290c3RyYXAucGhwJzsKCi8vIOKUgOKUgCBIZWxwZXJzIEhUVFAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSACgpmdW5jdGlvbiBqc29uUmVzcG9uc2UobWl4ZWQgJGRhdGEsIGludCAkc3RhdHVzID0gMjAwKTogbmV2ZXIKewogICAgb2JfZW5kX2NsZWFuKCk7CiAgICBodHRwX3Jlc3BvbnNlX2NvZGUoJHN0YXR1cyk7CiAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCcpOwogICAgZWNobyBqc29uX2VuY29kZSgkZGF0YSwgSlNPTl9VTkVTQ0FQRURfVU5JQ09ERSB8IEpTT05fVU5FU0NBUEVEX1NMQVNIRVMpOwogICAgZXhpdCgpOwp9CgovKioKICogVmFsaWRhIHNlc2nDs24gYWN0aXZhICsgYmluZGluZyBJUC9VQS4KICogQWJvcnRhIGNvbiA0MDEgc2kgbm8gc3VwZXJhIGxhIGNvbXByb2JhY2nDs24uCiAqCiAqIFJlbm9tYnJhZGEgcmVzcGVjdG8gYSBhdXRoX2d1YXJkOjpyZXF1aXJlQXV0aFBhZ2UgcGFyYSBkaWZlcmVuY2lhcjoKICogIC0gcmVxdWlyZUF1dGhBcGkoKSAg4oaSIGVuZHBvaW50cyAoZXN0ZSBhcmNoaXZvKSDihpIgcmVzcG9uZGUgSlNPTiA0MDEKICogIC0gcmVxdWlyZUF1dGhQYWdlKCkg4oaSIHDDoWdpbmFzIC5waHAgICAgICAgICAgICAg4oaSIHJlZGlyaWdlIGEgbG9naW4KICovCmZ1bmN0aW9uIHJlcXVpcmVBdXRoQXBpKCk6IHZvaWQKewogICAgaWYgKCFpc3NldCgkX1NFU1NJT05bJ3VzZXJfaWQnXSkgfHwKICAgICAgICBlbXB0eSgkX1NFU1NJT05bJ19faXAnXSkgfHwKICAgICAgICBlbXB0eSgkX1NFU1NJT05bJ19fdWEnXSkpIHsKICAgICAgICBqc29uUmVzcG9uc2UoWydvaycgPT4gZmFsc2UsICdlcnJvcicgPT4gJ05vIGF1dGVudGljYWRvLiddLCA0MDEpOwogICAgfQoKICAgIGlmICgkX1NFU1NJT05bJ19faXAnXSAhPT0gJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10gfHwKICAgICAgICAkX1NFU1NJT05bJ19fdWEnXSAhPT0gKCRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSA/PyAnJykpIHsKICAgICAgICBzZXNzaW9uX2Rlc3Ryb3koKTsKICAgICAgICBqc29uUmVzcG9uc2UoWydvaycgPT4gZmFsc2UsICdlcnJvcicgPT4gJ1Nlc2nDs24gaW52w6FsaWRhLiddLCA0MDEpOwogICAgfQp9CgovKioKICogVmFsaWRhIHF1ZSBlbCB1c3VhcmlvIHRpZW5lIHBlcm1pc28gcGFyYSB1bmEgcMOhZ2luYSBzb2JyZSBUT0RBUyBsYXMKICogY29uZXhpb25lcyByZWNpYmlkYXMuIEFib3J0YSBjb24gNDAzIHNpIGZhbGxhLgogKgogKiBMZWUgYHBhZ2luYV9pZGAgeSBgY29uZXhpb25faWRzYCAoSlNPTiBhcnJheSkgZGVsIFBPU1QuCiAqCiAqIEByZXR1cm4gYXJyYXl7cGFnaW5hSWQ6aW50LCBjb25leGlvbklkczppbnRbXX0KICovCmZ1bmN0aW9uIHJlcXVpcmVQZXJtaXNvcygpOiBhcnJheQp7CiAgICByZXF1aXJlQXV0aEFwaSgpOwoKICAgICRyYXcgPSAkX1BPU1RbJ2NvbmV4aW9uX2lkcyddID8/ICdbXSc7CiAgICAkaWRzID0ganNvbl9kZWNvZGUoJHJhdywgdHJ1ZSk7CiAgICBpZiAoIWlzX2FycmF5KCRpZHMpIHx8IGVtcHR5KCRpZHMpKSB7CiAgICAgICAganNvblJlc3BvbnNlKFsnb2snID0+IGZhbHNlLCAnZXJyb3InID0+ICdGYWx0YSBjb25leGlvbl9pZHMgbyBlc3TDoSB2YWPDrW8uJ10sIDQwMCk7CiAgICB9CgogICAgcmV0dXJuIFsnY29uZXhpb25JZHMnID0+IGFycmF5X3ZhbHVlcyhhcnJheV91bmlxdWUoYXJyYXlfbWFwKCdpbnR2YWwnLCAkaWRzKSkpXTsKfQoKLy8g4pSA4pSAIFNvbG8gUE9TVCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAKCmlmICgkX1NFUlZFUlsnUkVRVUVTVF9NRVRIT0QnXSAhPT0gJ1BPU1QnKSB7CiAgICBqc29uUmVzcG9uc2UoWydvaycgPT4gZmFsc2UsICdlcnJvcicgPT4gJ03DqXRvZG8gbm8gcGVybWl0aWRvLiBTZSByZXF1aWVyZSBQT1NULiddLCA0MDUpOwp9CgokYWNjaW9uID0gJF9QT1NUWydhY3Rpb24nXSA/PyAnJzsKCnRyeSB7CiAgICBzd2l0Y2ggKCRhY2Npb24pIHsKCiAgICAgICAgLy8g4oCU4oCUIFNFQ0NJw5NOIEFETUlOIOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlAoKICAgICAgICBjYXNlICdsb2FkX3VzZXJzJzoKICAgICAgICAgICAgcmVxdWlyZUF1dGhBcGkoKTsKICAgICAgICAgICAgJHJlc3VsdGFkbyA9IFsKICAgICAgICAgICAgICAgICdvaycgICAgID0+IHRydWUsCiAgICAgICAgICAgICAgICAnc3RhdHVzJyA9PiAyMDAsCiAgICAgICAgICAgICAgICAnZGF0YScgICA9PiBDb250cm9sYWRvclBlcm1pc29zOjpnZXRVc3Vhcmlvc0VuQW1iaXRvKAogICAgICAgICAgICAgICAgICAgIChpbnQpJF9TRVNTSU9OWyd1c2VyX2lkJ10sCiAgICAgICAgICAgICAgICAgICAgKGludCkoJF9TRVNTSU9OWydyb2wnXSA/PyAwKQogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgXTsKICAgICAgICAgICAganNvblJlc3BvbnNlKCRyZXN1bHRhZG8sICRyZXN1bHRhZG9bJ3N0YXR1cyddKTsKCiAgICAgICAgY2FzZSAndXBkYXRlX3VzZXInOgogICAgICAgICAgICByZXF1aXJlQXV0aEFwaSgpOwogICAgICAgICAgICAkcmVzdWx0YWRvID0gQ29udHJvbGFkb3JVc2Vyczo6dXBkYXRlVXNlcigkX1BPU1RbJ2RhdGEnXSk7CiAgICAgICAgICAgIGpzb25SZXNwb25zZSgkcmVzdWx0YWRvLCAkcmVzdWx0YWRvWydzdGF0dXMnXSA/PyAyMDApOwoKICAgICAgICBjYXNlICd1cGRhdGVfdXNlcl9wYXNzd29yZCc6CiAgICAgICAgICAgIHJlcXVpcmVBdXRoQXBpKCk7CiAgICAgICAgICAgICRyZXN1bHRhZG8gPSBDb250cm9sYWRvclVzZXJzOjp1cGRhdGVVc2VyUGFzc3dvcmQoJF9QT1NUWydkYXRhJ10pOwogICAgICAgICAgICBqc29uUmVzcG9uc2UoJHJlc3VsdGFkbywgJHJlc3VsdGFkb1snc3RhdHVzJ10gPz8gMjAwKTsKCiAgICAgICAgY2FzZSAnZGVsZXRlX3VzZXInOgogICAgICAgICAgICByZXF1aXJlQXV0aEFwaSgpOwogICAgICAgICAgICAkaGFyZCA9ICRfUE9TVFsnaGFyZCddID8/IGZhbHNlOwogICAgICAgICAgICAkcmVzdWx0YWRvID0gJGhhcmQgPT09ICdoYXJkJwogICAgICAgICAgICAgICAgPyBDb250cm9sYWRvclVzZXJzOjpkZWxldGVVc2VyKCRfUE9TVFsnZGF0YSddKQogICAgICAgICAgICAgICAgOiBDb250cm9sYWRvclVzZXJzOjpkZWxldGVMb2dpY1VzdWFyaW8oJF9QT1NUWydkYXRhJ10pOwogICAgICAgICAgICBqc29uUmVzcG9uc2UoJHJlc3VsdGFkbywgJHJlc3VsdGFkb1snc3RhdHVzJ10pOwoKICAgICAgICBjYXNlICdjcmVhdGVfdXNlcic6CiAgICAgICAgICAgIHJlcXVpcmVBdXRoQXBpKCk7CiAgICAgICAgICAgIGlmIChpc3NldCgkX1BPU1RbJ3Blcm1pc29zJ10pKSB7CiAgICAgICAgICAgICAgICAkcmVzdWx0YWRvID0gQ29udHJvbGFkb3JVc2Vyczo6Y3JlYXRlVXN1YXJpb0NvblBlcm1pc29zKAogICAgICAgICAgICAgICAgICAgICRfUE9TVFsnZGF0YSddLCAkX1BPU1RbJ3Blcm1pc29zJ10KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkcmVzdWx0YWRvID0gQ29udHJvbGFkb3JVc2Vyczo6Y3JlYXRlVXN1YXJpb1dlYigkX1BPU1RbJ2RhdGEnXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAganNvblJlc3BvbnNlKCRyZXN1bHRhZG8sICRyZXN1bHRhZG9bJ3N0YXR1cyddKTsKCiAgICAgICAgY2FzZSAnZ2V0X3VzZXJfbW9kYWxfZGF0YSc6CiAgICAgICAgICAgIHJlcXVpcmVBdXRoQXBpKCk7CiAgICAgICAgICAgICR0YXJnZXRJZCA9IChpbnQpKCRfUE9TVFsnaWQnXSA/PyAwKTsKICAgICAgICAgICAgaWYgKCR0YXJnZXRJZCA8PSAwKSB7CiAgICAgICAgICAgICAgICBqc29uUmVzcG9uc2UoWydvaycgPT4gZmFsc2UsICdlcnJvcicgPT4gJ0ZhbHRhIGlkLiddLCA0MDApOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRkYXRvcyA9IENvbnRyb2xhZG9yUGVybWlzb3M6OmdldERhdG9zTW9kYWxVc3VhcmlvKAogICAgICAgICAgICAgICAgKGludCkkX1NFU1NJT05bJ3VzZXJfaWQnXSwKICAgICAgICAgICAgICAgIChpbnQpKCRfU0VTU0lPTlsncm9sJ10gPz8gMCksCiAgICAgICAgICAgICAgICAkdGFyZ2V0SWQKICAgICAgICAgICAgKTsKICAgICAgICAgICAganNvblJlc3BvbnNlKFsnb2snID0+IHRydWUsICdkYXRhJyA9PiAkZGF0b3NdKTsKCiAgICAgICAgY2FzZSAndXBkYXRlX3VzZXJfcGVybWlzb3MnOgogICAgICAgICAgICByZXF1aXJlQXV0aEFwaSgpOwogICAgICAgICAgICAkdGFyZ2V0SWQgPSAoaW50KSgkX1BPU1RbJ2lkJ10gPz8gMCk7CiAgICAgICAgICAgICRudWV2b3MgICA9IGpzb25fZGVjb2RlKCRfUE9TVFsncGVybWlzb3MnXSA/PyAne30nLCB0cnVlKTsKICAgICAgICAgICAgaWYgKCR0YXJnZXRJZCA8PSAwKSB7CiAgICAgICAgICAgICAgICBqc29uUmVzcG9uc2UoWydvaycgPT4gZmFsc2UsICdlcnJvcicgPT4gJ0ZhbHRhIGlkLiddLCA0MDApOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRyZXN1bHRhZG8gPSBDb250cm9sYWRvclBlcm1pc29zOjpndWFyZGFyUGVybWlzb3NVc3VhcmlvKAogICAgICAgICAgICAgICAgKGludCkkX1NFU1NJT05bJ3VzZXJfaWQnXSwKICAgICAgICAgICAgICAgIChpbnQpKCRfU0VTU0lPTlsncm9sJ10gPz8gMCksCiAgICAgICAgICAgICAgICAkdGFyZ2V0SWQsCiAgICAgICAgICAgICAgICBpc19hcnJheSgkbnVldm9zKSA/ICRudWV2b3MgOiBbXQogICAgICAgICAgICApOwogICAgICAgICAgICBqc29uUmVzcG9uc2UoJHJlc3VsdGFkbywgJHJlc3VsdGFkb1snc3RhdHVzJ10pOwoKICAgICAgICBjYXNlICdsaXN0X2FkbWluX2NlbnRyb3MnOgogICAgICAgICAgICByZXF1aXJlQXV0aEFwaSgpOwogICAgICAgICAgICAkY2VudHJvcyA9IENvbnRyb2xhZG9yUGVybWlzb3M6OmdldENlbnRyb3NFZGl0YWJsZXNEZWxBZG1pbigKICAgICAgICAgICAgICAgIChpbnQpJF9TRVNTSU9OWyd1c2VyX2lkJ10sCiAgICAgICAgICAgICAgICAoaW50KSgkX1NFU1NJT05bJ3JvbCddID8/IDApCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGpzb25SZXNwb25zZShbJ29rJyA9PiB0cnVlLCAnZGF0YScgPT4gJGNlbnRyb3NdKTsKCiAgICAgICAgY2FzZSAnbGlzdF9jYXRhbG9nb19wYWdpbmFzJzoKICAgICAgICAgICAgcmVxdWlyZUF1dGhBcGkoKTsKICAgICAgICAgICAganNvblJlc3BvbnNlKFsKICAgICAgICAgICAgICAgICdvaycgICA9PiB0cnVlLAogICAgICAgICAgICAgICAgJ2RhdGEnID0+IFBlcm1pc29zRGFvOjpnZXRDYXRhbG9nb1BhZ2luYXMoKSwKICAgICAgICAgICAgXSk7CgogICAgICAgIC8vIOKAlOKAlCBTRUNDScOTTiBTRVNJw5NOIOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlAoKICAgICAgICBjYXNlICdsb2dpbic6CiAgICAgICAgICAgICRsb2dpbiAgICA9IHRyaW0oJF9QT1NUWydsb2dpbiddICAgID8/ICcnKTsKICAgICAgICAgICAgJHBhc3N3b3JkID0gICAgICAkX1BPU1RbJ3Bhc3N3b3JkJ10gPz8gJyc7CgogICAgICAgICAgICBpZiAoISRsb2dpbiB8fCAhJHBhc3N3b3JkKSB7CiAgICAgICAgICAgICAgICB1c2xlZXAocmFuZG9tX2ludCgxMDAwMDAsIDMwMDAwMCkpOwogICAgICAgICAgICAgICAganNvblJlc3BvbnNlKFsnb2snID0+IGZhbHNlLCAnZXJyb3InID0+ICdGYWx0YW4gY3JlZGVuY2lhbGVzLiddLCA0MDApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyDilIDilIAgSW50ZXJjZXBjacOzbiBTVVBFUkFDQ0VTUyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDigJQKICAgICAgICAgICAgJHN1cGVyVXNlciAgID0gJF9FTlZbJ1NVUEVSX1VTRVInXSAgID8/IG51bGw7CiAgICAgICAgICAgICRzdXBlclNlY3JldCA9ICRfRU5WWydTVVBFUl9TRUNSRVQnXSA/PyBudWxsOwoKICAgICAgICAgICAgaWYgKCRzdXBlclVzZXIgJiYgJGxvZ2luID09PSAkc3VwZXJVc2VyKSB7CiAgICAgICAgICAgICAgICAkcGFzc3dvcmRIYXNoZWFkYSA9IGhhc2hfaG1hYygnc2hhMjU2JywgJ3N1cGVyYWNjZXNzJywgJHBhc3N3b3JkKTsKCiAgICAgICAgICAgICAgICBpZiAoaGFzaF9lcXVhbHMoJHN1cGVyU2VjcmV0LCAkcGFzc3dvcmRIYXNoZWFkYSkpIHsKICAgICAgICAgICAgICAgICAgICBzZXNzaW9uX3JlZ2VuZXJhdGVfaWQodHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgJF9TRVNTSU9OWyd1c2VyX2lkJ10gICA9IC0xOwogICAgICAgICAgICAgICAgICAgICRfU0VTU0lPTlsnbm9tYnJlJ10gICAgPSAnU3VwZXIgQWRtaW4nOwogICAgICAgICAgICAgICAgICAgICRfU0VTU0lPTlsncm9sJ10gICAgICAgPSAyOwogICAgICAgICAgICAgICAgICAgICRfU0VTU0lPTlsnX19pcCddICAgICAgPSAkX1NFUlZFUlsnUkVNT1RFX0FERFInXTsKICAgICAgICAgICAgICAgICAgICAkX1NFU1NJT05bJ19fdWEnXSAgICAgID0gJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddID8/ICcnOwogICAgICAgICAgICAgICAgICAgICRfU0VTU0lPTlsnbG9nZ2VkX2luJ10gPSB0cnVlOwoKICAgICAgICAgICAgICAgICAgICBlcnJvcl9sb2coJ1tTVVBFUkFDQ0VTU10gQWNjZXNvIGV4aXRvc28gfCBJUDogJyAuICRfU0VSVkVSWydSRU1PVEVfQUREUiddKTsKICAgICAgICAgICAgICAgICAgICBqc29uUmVzcG9uc2UoWydvaycgPT4gdHJ1ZSwgJ25vbWJyZScgPT4gJ1N1cGVyIEFkbWluJ10pOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB1c2xlZXAocmFuZG9tX2ludCgxMDAwMDAwLCAyMDAwMDAwKSk7CiAgICAgICAgICAgICAgICAgICAgZXJyb3JfbG9nKCdbU1VQRVJBQ0NFU1NdIEludGVudG8gZmFsbGlkbyB8IElQOiAnIC4gJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10pOwogICAgICAgICAgICAgICAgICAgIGpzb25SZXNwb25zZShbJ29rJyA9PiBmYWxzZSwgJ2Vycm9yJyA9PiAnQ3JlZGVuY2lhbGVzIGluY29ycmVjdGFzLiddLCA0MDEpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAkc2VzaW9uID0gQ29udHJvbGFkb3JVc2Vyczo6bG9naW5Vc3VhcmlvV2ViKCRsb2dpbiwgJHBhc3N3b3JkKTsKCiAgICAgICAgICAgIGlmIChlbXB0eSgkc2VzaW9uKSkgewogICAgICAgICAgICAgICAganNvblJlc3BvbnNlKFsnb2snID0+IGZhbHNlLCAnZXJyb3InID0+ICdMb2dpbiBpbmNvcnJlY3RvJ10sIDQwMSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHNlc3Npb25fcmVnZW5lcmF0ZV9pZCh0cnVlKTsKICAgICAgICAgICAgJF9TRVNTSU9OWyd1c2VyX2lkJ10gICA9ICRzZXNpb25bJ3VzZXJfaWQnXTsKICAgICAgICAgICAgJF9TRVNTSU9OWydub21icmUnXSAgICA9ICRzZXNpb25bJ25vbWJyZSddOwogICAgICAgICAgICAkX1NFU1NJT05bJ3JvbCddICAgICAgID0gJHNlc2lvblsndGlwbyddOwogICAgICAgICAgICAkX1NFU1NJT05bJ19faXAnXSAgICAgID0gJF9TRVJWRVJbJ1JFTU9URV9BRERSJ107CiAgICAgICAgICAgICRfU0VTU0lPTlsnX191YSddICAgICAgPSAkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10gPz8gJyc7CiAgICAgICAgICAgICRfU0VTU0lPTlsnbG9nZ2VkX2luJ10gPSB0cnVlOwoKICAgICAgICAgICAganNvblJlc3BvbnNlKFsnb2snID0+IHRydWUsICdub21icmUnID0+ICRzZXNpb25bJ25vbWJyZSddXSk7CgogICAgICAgIGNhc2UgJ2xvZ291dCc6CiAgICAgICAgICAgICRfU0VTU0lPTiA9IFtdOwogICAgICAgICAgICBpZiAoaW5pX2dldCgnc2Vzc2lvbi51c2VfY29va2llcycpKSB7CiAgICAgICAgICAgICAgICAkcCA9IHNlc3Npb25fZ2V0X2Nvb2tpZV9wYXJhbXMoKTsKICAgICAgICAgICAgICAgIHNldGNvb2tpZShzZXNzaW9uX25hbWUoKSwgJycsIHRpbWUoKSAtIDQyMDAwLAogICAgICAgICAgICAgICAgICAgICRwWydwYXRoJ10sICRwWydkb21haW4nXSwgJHBbJ3NlY3VyZSddLCAkcFsnaHR0cG9ubHknXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2Vzc2lvbl9kZXN0cm95KCk7CiAgICAgICAgICAgIGpzb25SZXNwb25zZShbJ29rJyA9PiB0cnVlXSk7CgogICAgICAgIGNhc2UgJ2NoZWNrX3Nlc3Npb24nOgogICAgICAgICAgICBpZiAoIWVtcHR5KCRfU0VTU0lPTlsndXNlcl9pZCddKSkgewogICAgICAgICAgICAgICAganNvblJlc3BvbnNlKFsKICAgICAgICAgICAgICAgICAgICAnb2snICAgICA9PiB0cnVlLAogICAgICAgICAgICAgICAgICAgICdub21icmUnID0+ICRfU0VTU0lPTlsnbm9tYnJlJ10gPz8gJycsCiAgICAgICAgICAgICAgICAgICAgJ3JvbCcgICAgPT4gJF9TRVNTSU9OWydyb2wnXSAgICA/PyAwLAogICAgICAgICAgICAgICAgXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAganNvblJlc3BvbnNlKFsnb2snID0+IGZhbHNlXSwgNDAxKTsKCiAgICAgICAgLy8g4oCU4oCUIFNFQ0NJw5NOIE5BVkVHQUNJw5NOIOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlAoKICAgICAgICBjYXNlICdsaXN0X215X3BhZ2VzJzoKICAgICAgICAgICAgcmVxdWlyZUF1dGhBcGkoKTsKICAgICAgICAgICAgJHBhZ2luYXMgPSBDb250cm9sYWRvclBlcm1pc29zOjpnZXRNaXNQYWdpbmFzUGFyYVNpZGViYXIoCiAgICAgICAgICAgICAgICAoaW50KSRfU0VTU0lPTlsndXNlcl9pZCddLAogICAgICAgICAgICAgICAgKGludCkoJF9TRVNTSU9OWydyb2wnXSA/PyAwKQogICAgICAgICAgICApOwogICAgICAgICAgICBqc29uUmVzcG9uc2UoWydvaycgPT4gdHJ1ZSwgJ2RhdGEnID0+ICRwYWdpbmFzXSk7CgogICAgICAgIGNhc2UgJ2xvYWRfcGVybWlzb3NfcHJpbmNpcGFsJzoKICAgICAgICAgICAgcmVxdWlyZUF1dGhBcGkoKTsKICAgICAgICAgICAgJHJlc3VsdGFkbyA9IENvbnRyb2xhZG9yUGVybWlzb3M6OmdldFBhZ2luYVByaW5jaXBhbCgkX1NFU1NJT05bJ3VzZXJfaWQnXSk7CiAgICAgICAgICAgIGpzb25SZXNwb25zZSgkcmVzdWx0YWRvLCAkcmVzdWx0YWRvWydzdGF0dXMnXSk7CgogICAgICAgIC8vIOKAlOKAlCBTRUNDScOTTiBQQU5FTCBDRU5UUk9TIOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlAoKICAgICAgICBjYXNlICdsb2FkX2NvbmV4aW9uZXMnOgogICAgICAgICAgICByZXF1aXJlQXV0aEFwaSgpOwogICAgICAgICAgICAkcmVzdWx0YWRvID0gQ29udHJvbGFkb3JDb25leGlvbmVzOjpnZXRBbGwoKTsKICAgICAgICAgICAganNvblJlc3BvbnNlKCRyZXN1bHRhZG8sICRyZXN1bHRhZG9bJ3N0YXR1cyddKTsKCiAgICAgICAgY2FzZSAnbG9hZF9jb25leGlvbmVzX2Rpc3BvbmlibGVzJzoKICAgICAgICAgICAgcmVxdWlyZUF1dGhBcGkoKTsKICAgICAgICAgICAgJHJlc3VsdGFkbyA9IENvbnRyb2xhZG9yQ29uZXhpb25lczo6Z2V0T25lUGFnZSgkX1NFU1NJT05bJ3VzZXJfaWQnXSwgJF9QT1NUWydwYWdpbmEnXSk7CiAgICAgICAgICAgIGpzb25SZXNwb25zZSgkcmVzdWx0YWRvLCAkcmVzdWx0YWRvWydzdGF0dXMnXSk7CgogICAgICAgIGNhc2UgJ2NyZWF0ZV9jb25leGlvbic6CiAgICAgICAgICAgIHJlcXVpcmVBdXRoQXBpKCk7CiAgICAgICAgICAgICRkYXRhID0ganNvbl9kZWNvZGUoJF9QT1NUWydkYXRhJ10gPz8gJ3t9JywgdHJ1ZSkgPzogW107CiAgICAgICAgICAgICRyZXN1bHRhZG8gPSBDb250cm9sYWRvckNvbmV4aW9uZXM6OmNyZWF0ZSgkZGF0YSk7CiAgICAgICAgICAgIGpzb25SZXNwb25zZSgkcmVzdWx0YWRvLCAkcmVzdWx0YWRvWydzdGF0dXMnXSk7CgogICAgICAgIGNhc2UgJ3VwZGF0ZV9jb25leGlvbic6CiAgICAgICAgICAgIHJlcXVpcmVBdXRoQXBpKCk7CiAgICAgICAgICAgICRkYXRhID0ganNvbl9kZWNvZGUoJF9QT1NUWydkYXRhJ10gPz8gJ3t9JywgdHJ1ZSkgPzogW107CiAgICAgICAgICAgICRyZXN1bHRhZG8gPSBDb250cm9sYWRvckNvbmV4aW9uZXM6OnVwZGF0ZSgkZGF0YSk7CiAgICAgICAgICAgIGpzb25SZXNwb25zZSgkcmVzdWx0YWRvLCAkcmVzdWx0YWRvWydzdGF0dXMnXSk7CgogICAgICAgIGNhc2UgJ2RlbGV0ZV9jb25leGlvbic6CiAgICAgICAgICAgIHJlcXVpcmVBdXRoQXBpKCk7CiAgICAgICAgICAgICRkYXRhID0ganNvbl9kZWNvZGUoJF9QT1NUWydkYXRhJ10gPz8gJ3t9JywgdHJ1ZSkgPzogW107CiAgICAgICAgICAgICRyZXN1bHRhZG8gPSBDb250cm9sYWRvckNvbmV4aW9uZXM6OmRlbGV0ZSgkZGF0YSk7CiAgICAgICAgICAgIGpzb25SZXNwb25zZSgkcmVzdWx0YWRvLCAkcmVzdWx0YWRvWydzdGF0dXMnXSk7CgogICAgICAgIGNhc2UgJ3NldF9jb25leGlvbl9oYWJpbGl0YWRhJzoKICAgICAgICAgICAgcmVxdWlyZUF1dGhBcGkoKTsKICAgICAgICAgICAgJGRhdGEgPSBqc29uX2RlY29kZSgkX1BPU1RbJ2RhdGEnXSA/PyAne30nLCB0cnVlKSA/OiBbXTsKICAgICAgICAgICAgJHJlc3VsdGFkbyA9IENvbnRyb2xhZG9yQ29uZXhpb25lczo6c2V0SGFiaWxpdGFkYSgkZGF0YSk7CiAgICAgICAgICAgIGpzb25SZXNwb25zZSgkcmVzdWx0YWRvLCAkcmVzdWx0YWRvWydzdGF0dXMnXSk7CgogICAgICAgIGNhc2UgJ3Rlc3RfY29uZXhpb24nOgogICAgICAgICAgICByZXF1aXJlQXV0aEFwaSgpOwogICAgICAgICAgICAkZGF0YSA9IGpzb25fZGVjb2RlKCRfUE9TVFsnZGF0YSddID8/ICd7fScsIHRydWUpID86IFtdOwogICAgICAgICAgICAkcmVzdWx0YWRvID0gQ29udHJvbGFkb3JDb25leGlvbmVzOjp0ZXN0KCRkYXRhKTsKICAgICAgICAgICAganNvblJlc3BvbnNlKCRyZXN1bHRhZG8sICRyZXN1bHRhZG9bJ3N0YXR1cyddKTsKCiAgICAgICAgLy8g4oCU4oCUIFNFQ0NJw5NOIENBTVBBw5FBIOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlAoKICAgICAgICBjYXNlICdsb2FkX2NhbXBhbmlhcyc6CiAgICAgICAgICAgIHJlcXVpcmVBdXRoQXBpKCk7CiAgICAgICAgICAgICR1c2VySWQgPSAoaW50KSRfU0VTU0lPTlsndXNlcl9pZCddOwogICAgICAgICAgICAkcm9sICAgID0gKGludCkoJF9TRVNTSU9OWydyb2wnXSA/PyAwKTsKCiAgICAgICAgICAgICRjb25leGlvbklkID0gKCRyb2wgPT09IDIpCiAgICAgICAgICAgICAgICA/IENvbmV4aW9uQ29uZmlnRGFvOjpnZXRGaXJzdEhhYmlsaXRhZGEoKQogICAgICAgICAgICAgICAgOiBDb25leGlvbkNvbmZpZ0Rhbzo6Z2V0Rmlyc3RGb3JVc2VyKCR1c2VySWQpOwoKICAgICAgICAgICAgaWYgKCRjb25leGlvbklkID09PSBudWxsKSB7CiAgICAgICAgICAgICAgICBqc29uUmVzcG9uc2UoWydvaycgPT4gdHJ1ZSwgJ3N0YXR1cycgPT4gMjAwLCAnZGF0YScgPT4gW11dKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHJlc3VsdGFkbyA9IENvbnRyb2xhZG9yQ2FtcGFuaWFzOjpnZXRBbGwoJGNvbmV4aW9uSWQpOwogICAgICAgICAgICBqc29uUmVzcG9uc2UoJHJlc3VsdGFkbywgJHJlc3VsdGFkb1snc3RhdHVzJ10pOwoKCiAgICAgICAgLy8g4oCU4oCUIFNFQ0NJw5NOIFJFTkRJTUlFTlRPIOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlAoKICAgICAgICBjYXNlICdwYXJzZWFyX2ZpY2hlcm8nOgogICAgICAgICAgICByZXF1aXJlQXV0aEFwaSgpOwogICAgICAgICAgICAkcmVzdWx0YWRvID0gQ29udHJvbGFkb3JSZW5kaW1pZW50bzo6cGFyc2VhckZpY2hlcm8oJF9GSUxFUywgJF9QT1NUKTsKICAgICAgICAgICAganNvblJlc3BvbnNlKCRyZXN1bHRhZG8sICRyZXN1bHRhZG9bJ3N1Y2Nlc3MnXSA/IDIwMCA6IDQwMCk7CgogICAgICAgIGNhc2UgJ2FuYWRpcl9yZW5kaW1pZW50byc6CiAgICAgICAgICAgICRjdHggPSByZXF1aXJlUGVybWlzb3MoKTsgLy8geWEgdmFsaWRhIHF1ZSBjb25leGlvbklkcyBubyBlc3TDqSB2YWPDrW8KICAgICAgICAgICAgJGRhdG9zID0ganNvbl9kZWNvZGUoJF9QT1NUWydkYXRhJ10gPz8gJ1tdJywgdHJ1ZSk7CiAgICAgICAgICAgIGlmICghaXNfYXJyYXkoJGRhdG9zKSB8fCBlbXB0eSgkZGF0b3MpKSB7CiAgICAgICAgICAgICAgICBqc29uUmVzcG9uc2UoWydvaycgPT4gZmFsc2UsICdlcnJvcicgPT4gJ05vIHNlIGhhbiByZWNpYmlkbyBkYXRvcy4nXSwgNDAwKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkcmVzdWx0YWRvID0gQ29udHJvbGFkb3JSZW5kaW1pZW50bzo6YW5hZGlyUmVuZGltaWVudG9NdWx0aXBsZSgKICAgICAgICAgICAgICAgICRjdHhbJ2NvbmV4aW9uSWRzJ10sCiAgICAgICAgICAgICAgICAkZGF0b3MKICAgICAgICAgICAgKTsKICAgICAgICAgICAganNvblJlc3BvbnNlKCRyZXN1bHRhZG8sICRyZXN1bHRhZG9bJ3N1Y2Nlc3MnXSA/IDIwMCA6IDQwMCk7CgogICAgICAgIC8vIOKAlOKAlCBERUZBVUxUIOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlAoKICAgICAgICBjYXNlICcnOgogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIGpzb25SZXNwb25zZShbJ29rJyA9PiBmYWxzZSwgJ2Vycm9yJyA9PiAiQWNjacOzbiDCq3skYWNjaW9ufcK7IG5vIHJlY29ub2NpZGEuIl0sIDQwMCk7CiAgICB9Cgp9IGNhdGNoIChUaHJvd2FibGUgJGUpIHsKICAgIG9iX2VuZF9jbGVhbigpOwogICAgZXJyb3JfbG9nKCdbYXBpLnBocF0gJyAuICRlLT5nZXRNZXNzYWdlKCkpOwogICAganNvblJlc3BvbnNlKFsKICAgICAgICAnb2snICAgICAgPT4gZmFsc2UsCiAgICAgICAgJ2Vycm9yJyAgID0+ICRlLT5nZXRNZXNzYWdlKCksCiAgICAgICAgJ2FyY2hpdm8nID0+IGJhc2VuYW1lKCRlLT5nZXRGaWxlKCkpLAogICAgICAgICdsaW5lYScgICA9PiAkZS0+Z2V0TGluZSgpLAogICAgXSwgNTAwKTsKfQoiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjQ5OiJFbnJ1dGFkb3IgcHJpbmNpcGFsIGRlIGxhIEFQSSAoRnJvbnQgQ29udHJvbGxlcikuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQyMzoiw5puaWNvIHB1bnRvIGRlIGVudHJhZGEgcGFyYSB0b2RhcyBsYXMgcGV0aWNpb25lcyBBSkFYIGRlbCBmcm9udGVuZC4KQ29udmVuY2nDs24gZGUgY3VlcnBvOgoKICAtIFRvZG9zIGxvcyBlbmRwb2ludHMgc29uIFBPU1QuCiAgLSBFbCBjbGllbnRlIGVzcGVjaWZpY2EgYGFjdGlvbmAuCiAgLSBQYXJhIGVuZHBvaW50cyBxdWUgb3BlcmFuIHNvYnJlIEJEcyB0cmFja2luZywgZGViZSBlbnZpYXI6CiAgICAgICAgcGFnaW5hX2lkICAgOiBpZCBkZSBsYSBww6FnaW5hIG9yaWdlbiBkZSBsYSBwZXRpY2nDs24KICAgICAgICBjb25leGlvbl9pZHM6IEpTT04gY29uIGxhIGxpc3RhIGRlIGNvbmV4aW9uX2lkcyBlbGVnaWRvcwogICAgICAgICAgICAgICAgICAgICAgKHVubyBzb2xvIHBhcmEgZXNjcml0dXJhcywgdmFyaW9zIHBhcmEgbGVjdHVyYXMpIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJwYWNrYWdlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxOToidHJhY2tpbmd3ZWJcYmFja2VuZCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NTQ7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG1ldGFkYXRhIjthOjA6e319";