1789595940
c05b9b66eacc8e11cfd97f370d355f8b-phpdoc%3A96c9f53d3f1833ceedeb1d37e22e4b09-74f3bbda3f63da3f147eaeeea0630006
s:29420:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjE5OiJjaWZyYXJfY29uZXhpb24ucGhwIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjU6e3M6OToiXHByb21wdCgpIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXyI6OTp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGFyZ3VtZW50cyI7YTozOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjU6ImxhYmVsIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxhYmxlIjoxOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxhYmxlAHJlYWxUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjc6ImRlZmF1bHQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbiI6Mjp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBleHByZXNzaW9uIjtzOjQ0OiJ7eyBQSFBET0MzN2E2MjU5Y2MwYzFkYWUyOTlhNzg2NjQ4OWRmZjBiZCB9fSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBwYXJ0cyI7YToxOntzOjQ0OiJ7eyBQSFBET0MzN2E2MjU5Y2MwYzFkYWUyOTlhNzg2NjQ4OWRmZjBiZCB9fSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE51bGxfIjowOnt9fX1zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToyO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo4OiJyZXF1aXJlZCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uIjoyOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAGV4cHJlc3Npb24iO3M6NDQ6Int7IFBIUERPQ2IzMjZiNTA2MmIyZjBlNjkwNDY4MTA3MTc1MzRjYjA5IH19IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAHBhcnRzIjthOjE6e3M6NDQ6Int7IFBIUERPQ2IzMjZiNTA2MmIyZjBlNjkwNDY4MTA3MTc1MzRjYjA5IH19IjtPOjQyOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUHNldWRvVHlwZXNcVHJ1ZV8iOjA6e319fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjU3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjk6Ilxwcm9tcHQoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjY6InByb21wdCI7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBkb2NCbG9jayI7TjtzOjYwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AbWV0YWRhdGEiO2E6MDp7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBhdHRyaWJ1dGVzIjthOjA6e319czoxMjoiXHByb21wdEludCgpIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXyI6OTp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjU6ImxhYmVsIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjc6ImRlZmF1bHQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjU5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTI6Ilxwcm9tcHRJbnQoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjk6InByb21wdEludCI7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBkb2NCbG9jayI7TjtzOjYwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AbWV0YWRhdGEiO2E6MDp7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBhdHRyaWJ1dGVzIjthOjA6e319czoxMzoiXHByb21wdEJvb2woKSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8iOjk6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo1OiJsYWJlbCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xCb29sZWFuIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJkZWZhdWx0IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2ODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjc3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjEzOiJccHJvbXB0Qm9vbCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6InByb21wdEJvb2wiO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AZG9jQmxvY2siO047czo2MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAG1ldGFkYXRhIjthOjA6e31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AYXR0cmlidXRlcyI7YTowOnt9fXM6MTc6Ilxwcm9tcHRQYXNzd29yZCgpIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXyI6OTp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjU6ImxhYmVsIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEwNTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxNzoiXHByb21wdFBhc3N3b3JkKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNDoicHJvbXB0UGFzc3dvcmQiO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjU0OiJMZWUgdW5hIGNvbnRyYXNlw7FhIG9jdWx0YW5kbyBlbCBlY28gZW4gc2lzdGVtYXMgVW5peC4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NTk6IkVuIFdpbmRvd3MgbXVlc3RyYSBlbCB0ZXh0byBlbiBjbGFybyAobGltaXRhY2nDs24gZGUgc3R0eSkuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo2MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAG1ldGFkYXRhIjthOjA6e31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8AYXR0cmlidXRlcyI7YTowOnt9fXM6MTI6IlxzcWxFc2NhcGUoKSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGdW5jdGlvbl8iOjk6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxOiJzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMTE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMTQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTI6IlxzcWxFc2NhcGUoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjk6InNxbEVzY2FwZSI7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NzU6IkVzY2FwYSB1bmEgY2FkZW5hIHBhcmEgaW5jbHVzacOzbiBzZWd1cmEgZW4gdW5hIHNlbnRlbmNpYSBTUUwgY29tbyBsaXRlcmFsLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo2NToiU29sbyBwYXJhIHVzbyBkZSBwcmVzZW50YWNpw7NuIChlbCBJTlNFUlQgcXVlIG11ZXN0cmEgZWwgc2NyaXB0KS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjEyNztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NjA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZ1bmN0aW9uXwBtZXRhZGF0YSI7YTowOnt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRnVuY3Rpb25fAGF0dHJpYnV0ZXMiO2E6MDp7fX19czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9czo0MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBlbnVtcyI7YTowOnt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiI3NGYzYmJkYTNmNjNkYTNmMTQ3ZWFlZWVhMDYzMDAwNiI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjQ4OiJiYWNrZW5kL3V0aWxzL2tleXNfZ2VuZXJhdG9yL2NpZnJhcl9jb25leGlvbi5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjc4NDk6Ijw/cGhwCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKLyoqCiAqIGNpZnJhcl9jb25leGlvbi5waHAKICoKICogVXRpbGlkYWQgaW50ZXJhY3RpdmEgcG9yIHRlcm1pbmFsIHF1ZSBzb2xpY2l0YSB0b2RvcyBsb3MgZGF0b3MgZGUgdW5hCiAqIGZpbGEgZGUgbGEgdGFibGEgYGNvbmV4aW9uYCwgY2lmcmEgbGFzIGNyZWRlbmNpYWxlcyBzZW5zaWJsZXMKICogKGBkYl91c2VyYCwgYGRiX3Bhc3NgKSBjb24gbGEgTUFTVEVSX0tFWSBkZWwgLmVudiB5IG11ZXN0cmE6CiAqCiAqICAgMS4gTG9zIHZhbG9yZXMgY2lmcmFkb3Mgc3VlbHRvcyAocGFyYSBwZWdhciBjYW1wbyBhIGNhbXBvKS4KICogICAyLiBVbmEgc2VudGVuY2lhIElOU0VSVCBsaXN0YSBwYXJhIGVqZWN1dGFyIGVuIEhlaWRpU1FML3BocE15QWRtaW4uCiAqCiAqIFVzbyAoZGVzZGUgbGEgcmHDrXogZGVsIHByb3llY3RvKToKICogICAgIHBocCBiYWNrZW5kL3V0aWxzL2NpZnJhcl9jb25leGlvbi5waHAKICoKICogTm8gdG9jYSBsYSBCRDogc29sbyBjaWZyYSB5IG11ZXN0cmEuIExhIGluc2VyY2nDs24gbGEgaGFjZXMgdMO6IGEgbWFuby4KICoKICogQHBhY2thZ2UgdHJhY2tpbmdcYmFja2VuZFx1dGlscwogKi8KCmlmIChQSFBfU0FQSSAhPT0gJ2NsaScpIHsKICAgIGh0dHBfcmVzcG9uc2VfY29kZSg0MDMpOwogICAgZXhpdCgiRXN0ZSBzY3JpcHQgc29sbyBwdWVkZSBlamVjdXRhcnNlIGRlc2RlIGxhIHRlcm1pbmFsLlxuIik7Cn0KCnJlcXVpcmVfb25jZSBfX0RJUl9fIC4gJy8uLi8uLi92ZW5kb3IvYXV0b2xvYWQucGhwJzsKcmVxdWlyZV9vbmNlIF9fRElSX18gLiAnLy4uL0NyeXB0by5waHAnOwoKLy8g4pSA4pSAIENhcmdhciAuZW52IHkgdmFsaWRhciBNQVNURVJfS0VZIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgAp0cnkgewogICAgJGRvdGVudiA9IERvdGVudlxEb3RlbnY6OmNyZWF0ZUltbXV0YWJsZShfX0RJUl9fIC4gJy8uLicpOwogICAgJGRvdGVudi0+bG9hZCgpOwogICAgJGRvdGVudi0+cmVxdWlyZWQoWydNQVNURVJfS0VZJ10pOwp9IGNhdGNoIChUaHJvd2FibGUgJGUpIHsKICAgIGZ3cml0ZShTVERFUlIsICJFcnJvciBjYXJnYW5kbyAuZW52OiAiIC4gJGUtPmdldE1lc3NhZ2UoKSAuICJcbiIpOwogICAgZXhpdCgxKTsKfQoKLy8g4pSA4pSAIEhlbHBlcnMgZGUgcHJvbXB0IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgAoKZnVuY3Rpb24gcHJvbXB0KHN0cmluZyAkbGFiZWwsID9zdHJpbmcgJGRlZmF1bHQgPSBudWxsLCBib29sICRyZXF1aXJlZCA9IHRydWUpOiBzdHJpbmcKewogICAgJGhpbnQgPSAkZGVmYXVsdCAhPT0gbnVsbCA/ICIgWyRkZWZhdWx0XSIgOiAnJzsKICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgZWNobyAiICAkbGFiZWwkaGludDogIjsKICAgICAgICAkbGluZSA9IGZnZXRzKFNURElOKTsKICAgICAgICBpZiAoJGxpbmUgPT09IGZhbHNlKSBleGl0KCJcbiIpOwogICAgICAgICR2YWx1ZSA9IHRyaW0oJGxpbmUpOwoKICAgICAgICBpZiAoJHZhbHVlID09PSAnJyAmJiAkZGVmYXVsdCAhPT0gbnVsbCkgcmV0dXJuICRkZWZhdWx0OwogICAgICAgIGlmICgkdmFsdWUgPT09ICcnICYmICEkcmVxdWlyZWQpICAgICAgICByZXR1cm4gJyc7CiAgICAgICAgaWYgKCR2YWx1ZSAhPT0gJycpICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkdmFsdWU7CgogICAgICAgIGVjaG8gIiAgICDimqAgRXN0ZSBjYW1wbyBlcyBvYmxpZ2F0b3Jpby5cbiI7CiAgICB9Cn0KCmZ1bmN0aW9uIHByb21wdEludChzdHJpbmcgJGxhYmVsLCBpbnQgJGRlZmF1bHQpOiBpbnQKewogICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAkcmF3ID0gcHJvbXB0KCRsYWJlbCwgKHN0cmluZykkZGVmYXVsdCk7CiAgICAgICAgaWYgKGN0eXBlX2RpZ2l0KCRyYXcpKSByZXR1cm4gKGludCkkcmF3OwogICAgICAgIGVjaG8gIiAgICDimqAgRGViZSBzZXIgdW4gbsO6bWVybyBlbnRlcm8uXG4iOwogICAgfQp9CgpmdW5jdGlvbiBwcm9tcHRCb29sKHN0cmluZyAkbGFiZWwsIGJvb2wgJGRlZmF1bHQpOiBib29sCnsKICAgICRoaW50ID0gJGRlZmF1bHQgPyAncycgOiAnbic7CiAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICRyYXcgPSBzdHJ0b2xvd2VyKHByb21wdCgkbGFiZWwsICRoaW50KSk7CiAgICAgICAgaWYgKGluX2FycmF5KCRyYXcsIFsncycsICdzaScsICdzw60nLCAneScsICd5ZXMnLCAnMScsICd0cnVlJ10sICB0cnVlKSkgcmV0dXJuIHRydWU7CiAgICAgICAgaWYgKGluX2FycmF5KCRyYXcsIFsnbicsICdubycsICcwJywgJ2ZhbHNlJ10sICAgICAgICAgICAgICAgICAgIHRydWUpKSByZXR1cm4gZmFsc2U7CiAgICAgICAgZWNobyAiICAgIOKaoCBSZXNwb25kZSBzIG8gbi5cbiI7CiAgICB9Cn0KCi8qKgogKiBMZWUgdW5hIGNvbnRyYXNlw7FhIG9jdWx0YW5kbyBlbCBlY28gZW4gc2lzdGVtYXMgVW5peC4KICogRW4gV2luZG93cyBtdWVzdHJhIGVsIHRleHRvIGVuIGNsYXJvIChsaW1pdGFjacOzbiBkZSBzdHR5KS4KICovCmZ1bmN0aW9uIHByb21wdFBhc3N3b3JkKHN0cmluZyAkbGFiZWwpOiBzdHJpbmcKewogICAgJGhpZGRlbiA9IFBIUF9PU19GQU1JTFkgIT09ICdXaW5kb3dzJzsKICAgIGVjaG8gIiAgJGxhYmVsOiAiOwoKICAgIGlmICgkaGlkZGVuKSB7CiAgICAgICAgQHN5c3RlbSgnc3R0eSAtZWNobyAyPi9kZXYvbnVsbCcpOwogICAgfQogICAgJGxpbmUgPSBmZ2V0cyhTVERJTik7CiAgICBpZiAoJGhpZGRlbikgewogICAgICAgIEBzeXN0ZW0oJ3N0dHkgZWNobyAyPi9kZXYvbnVsbCcpOwogICAgICAgIGVjaG8gIlxuIjsKICAgIH0KCiAgICBpZiAoJGxpbmUgPT09IGZhbHNlKSBleGl0KCJcbiIpOwogICAgJHZhbHVlID0gcnRyaW0oJGxpbmUsICJcclxuIik7CgogICAgaWYgKCR2YWx1ZSA9PT0gJycpIHsKICAgICAgICBlY2hvICIgICAg4pqgIEVzdGUgY2FtcG8gZXMgb2JsaWdhdG9yaW8uXG4iOwogICAgICAgIHJldHVybiBwcm9tcHRQYXNzd29yZCgkbGFiZWwpOwogICAgfQogICAgcmV0dXJuICR2YWx1ZTsKfQoKLyoqCiAqIEVzY2FwYSB1bmEgY2FkZW5hIHBhcmEgaW5jbHVzacOzbiBzZWd1cmEgZW4gdW5hIHNlbnRlbmNpYSBTUUwgY29tbyBsaXRlcmFsLgogKiBTb2xvIHBhcmEgdXNvIGRlIHByZXNlbnRhY2nDs24gKGVsIElOU0VSVCBxdWUgbXVlc3RyYSBlbCBzY3JpcHQpLgogKi8KZnVuY3Rpb24gc3FsRXNjYXBlKHN0cmluZyAkcyk6IHN0cmluZwp7CiAgICByZXR1cm4gIiciIC4gc3RyX3JlcGxhY2UoIiciLCAiJyciLCAkcykgLiAiJyI7Cn0KCi8vIOKUgOKUgCBDYWJlY2VyYSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAKZWNobyAiXG4iOwplY2hvICLilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiI7CmVjaG8gIiAgQ2lmcmFyIGNyZWRlbmNpYWxlcyBkZSBjb25leGnDs25cbiI7CmVjaG8gIuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuXG4iOwplY2hvICJJbnRyb2R1Y2UgbG9zIGRhdG9zIGRlIGxhIG51ZXZhIGNvbmV4acOzbi4gUHVsc2EgRW50ZXIgZW4gbG9zIGNhbXBvc1xuIjsKZWNobyAiY29uIHZhbG9yIHBvciBkZWZlY3RvIHBhcmEgYWNlcHRhcmxvLlxuXG4iOwoKLy8g4pSA4pSAIFJlY29nZXIgZGF0b3Mg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSACiRub21icmUgICAgID0gcHJvbXB0KCdOb21icmUgdmlzaWJsZSAoZWouIFRyYWNraW5nIE1hZHJpZCknKTsKJGhvc3QgICAgICAgPSBwcm9tcHQoJ0hvc3QnLCAnbG9jYWxob3N0Jyk7CiRwdWVydG8gICAgID0gcHJvbXB0SW50KCdQdWVydG8nLCAzMzA2KTsKJGRiTmFtZSAgICAgPSBwcm9tcHQoJ05vbWJyZSBkZSBsYSBCRCAoZWouIHRyYWNraW5nX21hZHJpZCknKTsKJGRiVXNlciAgICAgPSBwcm9tcHQoJ1VzdWFyaW8gZGUgbGEgQkQnKTsKJGRiUGFzcyAgICAgPSBwcm9tcHRQYXNzd29yZCgnQ29udHJhc2XDsWEgZGUgbGEgQkQnKTsKJGNlbnRybyAgICAgPSBwcm9tcHRJbnQoJ0NlbnRybycsIDEpOwokY2lmICAgICAgICA9IHByb21wdEludCgnQ2lmJywxMjM0NTY3ODkpOwokaGFiaWxpdGFkbyA9IHByb21wdEJvb2woJ0hhYmlsaXRhZG8nLCB0cnVlKTsKCi8vIOKUgOKUgCBDaWZyYXIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSACnRyeSB7CiAgICAkdXNlckVuYyA9IENyeXB0bzo6ZW5jcnlwdCgkZGJVc2VyKTsKICAgICRwYXNzRW5jID0gQ3J5cHRvOjplbmNyeXB0KCRkYlBhc3MpOwp9IGNhdGNoIChUaHJvd2FibGUgJGUpIHsKICAgIGZ3cml0ZShTVERFUlIsICJcbiAg4pyWIEVycm9yIGFsIGNpZnJhcjogIiAuICRlLT5nZXRNZXNzYWdlKCkgLiAiXG4iKTsKICAgIGV4aXQoMSk7Cn0KCi8vIOKUgOKUgCBTYWxpZGEg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSACmVjaG8gIlxuIjsKZWNobyAi4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4iOwplY2hvICIgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbG9yZXMgY2lmcmFkb3MgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIjsKZWNobyAi4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG5cbiI7CmVjaG8gIiAgZGJfdXNlcl9lbmM6XG4gICAgJHVzZXJFbmNcblxuIjsKZWNobyAiICBkYl9wYXNzX2VuYzpcbiAgICAkcGFzc0VuY1xuXG4iOwoKZWNobyAi4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4iOwplY2hvICIgICAgICAgICAgICAgICAgICAgICBJTlNFUlQgbGlzdG8gcGFyYSBIZWlkaVNRTCAgICAgICAgICAgICAgICAgICAgIFxuIjsKZWNobyAi4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG5cbiI7Cgokc3FsID0gc3ByaW50ZigKICAgICJJTlNFUlQgSU5UTyBjb25leGlvblxuIiAuCiAgICAiICAobm9tYnJlLCBob3N0LCBwdWVydG8sIGRiX25hbWUsIGRiX3VzZXJfZW5jLCBkYl9wYXNzX2VuYywgY2VudHJvLCBjaWYsIGhhYmlsaXRhZG8pXG4iIC4KICAgICJWQUxVRVNcbiIgLgogICAgIiAgKCVzLCAlcywgJWQsICVzLFxuIiAuCiAgICAiICAgJXMsXG4iIC4KICAgICIgICAlcyxcbiIgLgogICAgIiAgICVzLFxuIiAuCiAgICAiICAgJXMsXG4iIC4KICAgICIgICAlZCk7XG4iLAogICAgc3FsRXNjYXBlKCRub21icmUpLAogICAgc3FsRXNjYXBlKCRob3N0KSwKICAgICRwdWVydG8sCiAgICBzcWxFc2NhcGUoJGRiTmFtZSksCiAgICBzcWxFc2NhcGUoJHVzZXJFbmMpLAogICAgc3FsRXNjYXBlKCRwYXNzRW5jKSwKICAgICRjZW50cm8sCiAgICAkY2lmLAogICAgJGhhYmlsaXRhZG8gPyAxIDogMAopOwoKZWNobyAkc3FsIC4gIlxuIjsKZWNobyAi4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4iOwplY2hvICIgICBTaSBjYW1iaWFzIGxhIE1BU1RFUl9LRVkgZGVsIC4gZW52IG3DoXMgYWRlbGFudGUsIGVzdG9zIHZhbG9yZXMgICBcbiI7CmVjaG8gIiAgIHF1ZWRhcsOhbiBpbGVnaWJsZXMuIFZ1ZWx2ZSBhIGVqZWN1dGFyIGVzdGUgc2NyaXB0IGNvbiBsYSBudWV2YSAgIFxuIjsKZWNobyAiICAgICAgICAgICAgICAgICAgICAgIGNsYXZlIHBhcmEgcmVnZW5lcmFybG9zLiAgICAgICAgICAgICAgICAgICAgICBcbiI7CmVjaG8gIuKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuXG4iOwoiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjE5OiJjaWZyYXJfY29uZXhpb24ucGhwIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQ3NjoiVXRpbGlkYWQgaW50ZXJhY3RpdmEgcG9yIHRlcm1pbmFsIHF1ZSBzb2xpY2l0YSB0b2RvcyBsb3MgZGF0b3MgZGUgdW5hCmZpbGEgZGUgbGEgdGFibGEgYGNvbmV4aW9uYCwgY2lmcmEgbGFzIGNyZWRlbmNpYWxlcyBzZW5zaWJsZXMKKGBkYl91c2VyYCwgYGRiX3Bhc3NgKSBjb24gbGEgTUFTVEVSX0tFWSBkZWwgLmVudiB5IG11ZXN0cmE6CgogIDEuIExvcyB2YWxvcmVzIGNpZnJhZG9zIHN1ZWx0b3MgKHBhcmEgcGVnYXIgY2FtcG8gYSBjYW1wbykuCiAgMi4gVW5hIHNlbnRlbmNpYSBJTlNFUlQgbGlzdGEgcGFyYSBlamVjdXRhciBlbiBIZWlkaVNRTC9waHBNeUFkbWluLgoKVXNvIChkZXNkZSBsYSByYcOteiBkZWwgcHJveWVjdG8pOgogICAgcGhwIGJhY2tlbmQvdXRpbHMvY2lmcmFyX2NvbmV4aW9uLnBocAoKTm8gdG9jYSBsYSBCRDogc29sbyBjaWZyYSB5IG11ZXN0cmEuIExhIGluc2VyY2nDs24gbGEgaGFjZXMgdMO6IGEgbWFuby4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6InBhY2thZ2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjIyOiJ0cmFja2luZ1xiYWNrZW5kXHV0aWxzIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjoxMjc7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG1ldGFkYXRhIjthOjA6e319";