1778692646
441d63ebbc39eba359c9061ece8482bd-phpdoc%3A3ce8b37cdd6a03b27b00d5acbccca6a9-37a3f0fa72fceef55cbd91aea085c9a5
s:17856:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjI2OiJTZXJ2aWNlU3Vic2NyaWJlclRyYWl0LnBocCI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6MjY6IlxTeW1mb255XENvbnRyYWN0c1xTZXJ2aWNlIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjY6IlxTeW1mb255XENvbnRyYWN0c1xTZXJ2aWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoiU2VydmljZSI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YToxOntzOjQ5OiJcU3ltZm9ueVxDb250cmFjdHNcU2VydmljZVxTZXJ2aWNlU3Vic2NyaWJlclRyYWl0IjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFRyYWl0XyI6MTA6e3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFRyYWl0XwBwcm9wZXJ0aWVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxUcmFpdF8AbWV0aG9kcyI7YToyOntzOjc0OiJcU3ltZm9ueVxDb250cmFjdHNcU2VydmljZVxTZXJ2aWNlU3Vic2NyaWJlclRyYWl0OjpnZXRTdWJzY3JpYmVkU2VydmljZXMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEzOntzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjExMTQ7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NzA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MjkwOTt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjc0OiJcU3ltZm9ueVxDb250cmFjdHNcU2VydmljZVxTZXJ2aWNlU3Vic2NyaWJlclRyYWl0OjpnZXRTdWJzY3JpYmVkU2VydmljZXMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjIxOiJnZXRTdWJzY3JpYmVkU2VydmljZXMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MTtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319czo2NToiXFN5bWZvbnlcQ29udHJhY3RzXFNlcnZpY2VcU2VydmljZVN1YnNjcmliZXJUcmFpdDo6c2V0Q29udGFpbmVyKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMzOiJcUHNyXENvbnRhaW5lclxDb250YWluZXJJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxODoiQ29udGFpbmVySW50ZXJmYWNlIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6OToiY29udGFpbmVyIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToyOTE2O31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjgzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjMyNDk7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUiOjE6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTnVsbGFibGUAcmVhbFR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMzoiXFBzclxDb250YWluZXJcQ29udGFpbmVySW50ZXJmYWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTg6IkNvbnRhaW5lckludGVyZmFjZSI7fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjU6IlxTeW1mb255XENvbnRyYWN0c1xTZXJ2aWNlXFNlcnZpY2VTdWJzY3JpYmVyVHJhaXQ6OnNldENvbnRhaW5lcigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTI6InNldENvbnRhaW5lciI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MTp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXR0cmlidXRlIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBdHRyaWJ1dGUAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NToiXFN5bWZvbnlcQ29udHJhY3RzXFNlcnZpY2VcQXR0cmlidXRlXFJlcXVpcmVkIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiUmVxdWlyZWQiO31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBdHRyaWJ1dGUAYXJndW1lbnRzIjthOjA6e319fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFRyYWl0XwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxUcmFpdF8AY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxUcmFpdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0OToiXFN5bWZvbnlcQ29udHJhY3RzXFNlcnZpY2VcU2VydmljZVN1YnNjcmliZXJUcmFpdCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjIyOiJTZXJ2aWNlU3Vic2NyaWJlclRyYWl0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoxMzk6IkltcGxlbWVudGF0aW9uIG9mIFNlcnZpY2VTdWJzY3JpYmVySW50ZXJmYWNlIHRoYXQgZGV0ZXJtaW5lcyBzdWJzY3JpYmVkIHNlcnZpY2VzCmZyb20gbWV0aG9kcyB0aGF0IGhhdmUgdGhlICNbU3Vic2NyaWJlZFNlcnZpY2VdIGF0dHJpYnV0ZS4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTU4OiJTZXJ2aWNlIGlkcyBhcmUgYXZhaWxhYmxlIGFzICJDbGFzc05hbWU6Om1ldGhvZE5hbWUiIHNvIHRoYXQgdGhlIGltcGxlbWVudGF0aW9uCm9mIHN1YnNjcmliZXIgbWV0aG9kcyBjYW4gYmUganVzdCBgcmV0dXJuICR0aGlzLT5jb250YWluZXItPmdldChfX01FVEhPRF9fKTtgLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjM6e2k6MDtPOjQ3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQcm9wZXJ0eSI6NDp7czo3OiIAKgBuYW1lIjtzOjg6InByb3BlcnR5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMzOiJcUHNyXENvbnRhaW5lclxDb250YWluZXJJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxODoiQ29udGFpbmVySW50ZXJmYWNlIjt9fXM6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czo5OiJjb250YWluZXIiO31pOjE7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yIjo0OntzOjc6IgAqAG5hbWUiO3M6NjoiYXV0aG9yIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7TjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvck5hbWUiO3M6MTA6IktldmluIEJvbmQiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MTk6ImtldmluYm9uZEBnbWFpbC5jb20iO31pOjI7Tzo0OToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcRGVwcmVjYXRlZCI6Mzp7czo3OiIAKgBuYW1lIjtzOjEwOiJkZXByZWNhdGVkIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo3MToic2luY2Ugc3ltZm9ueS9jb250cmFjdHMgdjMuNSwgdXNlIFNlcnZpY2VNZXRob2RzU3Vic2NyaWJlclRyYWl0IGluc3RlYWQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xEZXByZWNhdGVkAHZlcnNpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjI1OiJTeW1mb255XENvbnRyYWN0c1xTZXJ2aWNlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTozOntzOjE4OiJDb250YWluZXJJbnRlcmZhY2UiO3M6MzI6IlBzclxDb250YWluZXJcQ29udGFpbmVySW50ZXJmYWNlIjtzOjg6IlJlcXVpcmVkIjtzOjQ0OiJTeW1mb255XENvbnRyYWN0c1xTZXJ2aWNlXEF0dHJpYnV0ZVxSZXF1aXJlZCI7czoxNzoiU3Vic2NyaWJlZFNlcnZpY2UiO3M6NTM6IlN5bWZvbnlcQ29udHJhY3RzXFNlcnZpY2VcQXR0cmlidXRlXFN1YnNjcmliZWRTZXJ2aWNlIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxUcmFpdF8AYXR0cmlidXRlcyI7YTowOnt9fX1zOjQwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGVudW1zIjthOjA6e31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6IjM3YTNmMGZhNzJmY2VlZjU1Y2JkOTFhZWEwODVjOWE1IjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6NTk6InZlbmRvci9zeW1mb255L2NvbnRyYWN0cy9TZXJ2aWNlL1NlcnZpY2VTdWJzY3JpYmVyVHJhaXQucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czozMjUzOiI8P3BocAoKLyoKICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFN5bWZvbnkgcGFja2FnZS4KICoKICogKGMpIEZhYmllbiBQb3RlbmNpZXIgPGZhYmllbkBzeW1mb255LmNvbT4KICoKICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0UKICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuCiAqLwoKbmFtZXNwYWNlIFN5bWZvbnlcQ29udHJhY3RzXFNlcnZpY2U7Cgp1c2UgUHNyXENvbnRhaW5lclxDb250YWluZXJJbnRlcmZhY2U7CnVzZSBTeW1mb255XENvbnRyYWN0c1xTZXJ2aWNlXEF0dHJpYnV0ZVxSZXF1aXJlZDsKdXNlIFN5bWZvbnlcQ29udHJhY3RzXFNlcnZpY2VcQXR0cmlidXRlXFN1YnNjcmliZWRTZXJ2aWNlOwoKdHJpZ2dlcl9kZXByZWNhdGlvbignc3ltZm9ueS9jb250cmFjdHMnLCAndjMuNScsICciJXMiIGlzIGRlcHJlY2F0ZWQsIHVzZSAiU2VydmljZU1ldGhvZHNTdWJzY3JpYmVyVHJhaXQiIGluc3RlYWQuJywgU2VydmljZVN1YnNjcmliZXJUcmFpdDo6Y2xhc3MpOwoKLyoqCiAqIEltcGxlbWVudGF0aW9uIG9mIFNlcnZpY2VTdWJzY3JpYmVySW50ZXJmYWNlIHRoYXQgZGV0ZXJtaW5lcyBzdWJzY3JpYmVkIHNlcnZpY2VzCiAqIGZyb20gbWV0aG9kcyB0aGF0IGhhdmUgdGhlICNbU3Vic2NyaWJlZFNlcnZpY2VdIGF0dHJpYnV0ZS4KICoKICogU2VydmljZSBpZHMgYXJlIGF2YWlsYWJsZSBhcyAiQ2xhc3NOYW1lOjptZXRob2ROYW1lIiBzbyB0aGF0IHRoZSBpbXBsZW1lbnRhdGlvbgogKiBvZiBzdWJzY3JpYmVyIG1ldGhvZHMgY2FuIGJlIGp1c3QgYHJldHVybiAkdGhpcy0+Y29udGFpbmVyLT5nZXQoX19NRVRIT0RfXyk7YC4KICoKICogQHByb3BlcnR5IENvbnRhaW5lckludGVyZmFjZSAkY29udGFpbmVyCiAqCiAqIEBhdXRob3IgS2V2aW4gQm9uZCA8a2V2aW5ib25kQGdtYWlsLmNvbT4KICoKICogQGRlcHJlY2F0ZWQgc2luY2Ugc3ltZm9ueS9jb250cmFjdHMgdjMuNSwgdXNlIFNlcnZpY2VNZXRob2RzU3Vic2NyaWJlclRyYWl0IGluc3RlYWQKICovCnRyYWl0IFNlcnZpY2VTdWJzY3JpYmVyVHJhaXQKewogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBnZXRTdWJzY3JpYmVkU2VydmljZXMoKTogYXJyYXkKICAgIHsKICAgICAgICAkc2VydmljZXMgPSBtZXRob2RfZXhpc3RzKGdldF9wYXJlbnRfY2xhc3Moc2VsZjo6Y2xhc3MpID86ICcnLCBfX0ZVTkNUSU9OX18pID8gcGFyZW50OjpnZXRTdWJzY3JpYmVkU2VydmljZXMoKSA6IFtdOwoKICAgICAgICBmb3JlYWNoICgobmV3IFxSZWZsZWN0aW9uQ2xhc3Moc2VsZjo6Y2xhc3MpKS0+Z2V0TWV0aG9kcygpIGFzICRtZXRob2QpIHsKICAgICAgICAgICAgaWYgKHNlbGY6OmNsYXNzICE9PSAkbWV0aG9kLT5nZXREZWNsYXJpbmdDbGFzcygpLT5uYW1lKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCEkYXR0cmlidXRlID0gJG1ldGhvZC0+Z2V0QXR0cmlidXRlcyhTdWJzY3JpYmVkU2VydmljZTo6Y2xhc3MpWzBdID8/IG51bGwpIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoJG1ldGhvZC0+aXNTdGF0aWMoKSB8fCAkbWV0aG9kLT5pc0Fic3RyYWN0KCkgfHwgJG1ldGhvZC0+aXNHZW5lcmF0b3IoKSB8fCAkbWV0aG9kLT5pc0ludGVybmFsKCkgfHwgJG1ldGhvZC0+Z2V0TnVtYmVyT2ZSZXF1aXJlZFBhcmFtZXRlcnMoKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFxMb2dpY0V4Y2VwdGlvbihcc3ByaW50ZignQ2Fubm90IHVzZSAiJXMiIG9uIG1ldGhvZCAiJXM6OiVzKCkiIChjYW4gb25seSBiZSB1c2VkIG9uIG5vbi1zdGF0aWMsIG5vbi1hYnN0cmFjdCBtZXRob2RzIHdpdGggbm8gcGFyYW1ldGVycykuJywgU3Vic2NyaWJlZFNlcnZpY2U6OmNsYXNzLCBzZWxmOjpjbGFzcywgJG1ldGhvZC0+bmFtZSkpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoISRyZXR1cm5UeXBlID0gJG1ldGhvZC0+Z2V0UmV0dXJuVHlwZSgpKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgXExvZ2ljRXhjZXB0aW9uKFxzcHJpbnRmKCdDYW5ub3QgdXNlICIlcyIgb24gbWV0aG9kcyB3aXRob3V0IGEgcmV0dXJuIHR5cGUgaW4gIiVzOjolcygpIi4nLCBTdWJzY3JpYmVkU2VydmljZTo6Y2xhc3MsICRtZXRob2QtPm5hbWUsIHNlbGY6OmNsYXNzKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8qKiBAdmFyIFN1YnNjcmliZWRTZXJ2aWNlICRhdHRyaWJ1dGUgKi8KICAgICAgICAgICAgJGF0dHJpYnV0ZSA9ICRhdHRyaWJ1dGUtPm5ld0luc3RhbmNlKCk7CiAgICAgICAgICAgICRhdHRyaWJ1dGUtPmtleSA/Pz0gc2VsZjo6Y2xhc3MuJzo6Jy4kbWV0aG9kLT5uYW1lOwogICAgICAgICAgICAkYXR0cmlidXRlLT50eXBlID8/PSAkcmV0dXJuVHlwZSBpbnN0YW5jZW9mIFxSZWZsZWN0aW9uTmFtZWRUeXBlID8gJHJldHVyblR5cGUtPmdldE5hbWUoKSA6IChzdHJpbmcpICRyZXR1cm5UeXBlOwogICAgICAgICAgICAkYXR0cmlidXRlLT5udWxsYWJsZSA9ICRhdHRyaWJ1dGUtPm51bGxhYmxlID86ICRyZXR1cm5UeXBlLT5hbGxvd3NOdWxsKCk7CgogICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+YXR0cmlidXRlcykgewogICAgICAgICAgICAgICAgJHNlcnZpY2VzW10gPSAkYXR0cmlidXRlOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHNlcnZpY2VzWyRhdHRyaWJ1dGUtPmtleV0gPSAoJGF0dHJpYnV0ZS0+bnVsbGFibGUgPyAnPycgOiAnJykuJGF0dHJpYnV0ZS0+dHlwZTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRzZXJ2aWNlczsKICAgIH0KCiAgICAjW1JlcXVpcmVkXQogICAgcHVibGljIGZ1bmN0aW9uIHNldENvbnRhaW5lcihDb250YWluZXJJbnRlcmZhY2UgJGNvbnRhaW5lcik6ID9Db250YWluZXJJbnRlcmZhY2UKICAgIHsKICAgICAgICAkcmV0ID0gbnVsbDsKICAgICAgICBpZiAobWV0aG9kX2V4aXN0cyhnZXRfcGFyZW50X2NsYXNzKHNlbGY6OmNsYXNzKSA/OiAnJywgX19GVU5DVElPTl9fKSkgewogICAgICAgICAgICAkcmV0ID0gcGFyZW50OjpzZXRDb250YWluZXIoJGNvbnRhaW5lcik7CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+Y29udGFpbmVyID0gJGNvbnRhaW5lcjsKCiAgICAgICAgcmV0dXJuICRyZXQ7CiAgICB9Cn0KIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGRvY0Jsb2NrIjtOO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbWV0YWRhdGEiO2E6MDp7fX0=";