1778692625
441d63ebbc39eba359c9061ece8482bd-phpdoc%3A4961521aa5dac6d63d769c7608033b6c-be1f2d8465bf89b5d49793d98c204e6c
s:57708:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjE0OiJSdW5Db21tYW5kLnBocCI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6Mzg6IlxwaHBEb2N1bWVudG9yXENvbnNvbGVcQ29tbWFuZFxQcm9qZWN0IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzg6IlxwaHBEb2N1bWVudG9yXENvbnNvbGVcQ29tbWFuZFxQcm9qZWN0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoiUHJvamVjdCI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YToxOntzOjQ5OiJccGhwRG9jdW1lbnRvclxDb25zb2xlXENvbW1hbmRcUHJvamVjdFxSdW5Db21tYW5kIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTU6e3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YTo0OntzOjYzOiJccGhwRG9jdW1lbnRvclxDb25zb2xlXENvbW1hbmRcUHJvamVjdFxSdW5Db21tYW5kOjokcHJvZ3Jlc3NCYXIiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjE0OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2MzoiXHBocERvY3VtZW50b3JcQ29uc29sZVxDb21tYW5kXFByb2plY3RcUnVuQ29tbWFuZDo6JHByb2dyZXNzQmFyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6InByb2dyZXNzQmFyIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO047czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uIjoyOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxFeHByZXNzaW9uAGV4cHJlc3Npb24iO3M6NDoibnVsbCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBwYXJ0cyI7YTowOnt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ1OiJcU3ltZm9ueVxDb21wb25lbnRcQ29uc29sZVxIZWxwZXJcUHJvZ3Jlc3NCYXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiUHJvZ3Jlc3NCYXIiO319aToxO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xOdWxsXyI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGhvb2tzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXJ0dWFsIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbWV0YWRhdGEiO2E6MDp7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjc2OiJccGhwRG9jdW1lbnRvclxDb25zb2xlXENvbW1hbmRcUHJvamVjdFxSdW5Db21tYW5kOjokcHJvamVjdERlc2NyaXB0b3JCdWlsZGVyIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5IjoxNDp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjYyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NzY6IlxwaHBEb2N1bWVudG9yXENvbnNvbGVcQ29tbWFuZFxQcm9qZWN0XFJ1bkNvbW1hbmQ6OiRwcm9qZWN0RGVzY3JpcHRvckJ1aWxkZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNDoicHJvamVjdERlc2NyaXB0b3JCdWlsZGVyIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO047czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTA6IlxwaHBEb2N1bWVudG9yXERlc2NyaXB0b3JcUHJvamVjdERlc2NyaXB0b3JCdWlsZGVyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjQ6IlByb2plY3REZXNjcmlwdG9yQnVpbGRlciI7fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjoxO3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGhvb2tzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXJ0dWFsIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbWV0YWRhdGEiO2E6MDp7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjYwOiJccGhwRG9jdW1lbnRvclxDb25zb2xlXENvbW1hbmRcUHJvamVjdFxSdW5Db21tYW5kOjokcGlwZWxpbmUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjE0OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2MDoiXHBocERvY3VtZW50b3JcQ29uc29sZVxDb21tYW5kXFByb2plY3RcUnVuQ29tbWFuZDo6JHBpcGVsaW5lIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoicGlwZWxpbmUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MToiXHBocERvY3VtZW50b3JcUGlwZWxpbmVcUGlwZWxpbmVJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNzoiUGlwZWxpbmVJbnRlcmZhY2UiO319czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAcmVhZE9ubHkiO2I6MTtzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBob29rcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlydHVhbCI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBhdHRyaWJ1dGVzIjthOjA6e319czo2NzoiXHBocERvY3VtZW50b3JcQ29uc29sZVxDb21tYW5kXFByb2plY3RcUnVuQ29tbWFuZDo6JGV2ZW50RGlzcGF0Y2hlciI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6MTQ6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjY0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY3OiJccGhwRG9jdW1lbnRvclxDb25zb2xlXENvbW1hbmRcUHJvamVjdFxSdW5Db21tYW5kOjokZXZlbnREaXNwYXRjaGVyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTU6ImV2ZW50RGlzcGF0Y2hlciI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtOO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUwOiJcU3ltZm9ueVxDb21wb25lbnRcRXZlbnREaXNwYXRjaGVyXEV2ZW50RGlzcGF0Y2hlciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJFdmVudERpc3BhdGNoZXIiO319czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAcmVhZE9ubHkiO2I6MTtzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBob29rcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlydHVhbCI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBhdHRyaWJ1dGVzIjthOjA6e319fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjU6e3M6NjQ6IlxwaHBEb2N1bWVudG9yXENvbnNvbGVcQ29tbWFuZFxQcm9qZWN0XFJ1bkNvbW1hbmQ6Ol9fY29uc3RydWN0KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTozOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUwOiJccGhwRG9jdW1lbnRvclxEZXNjcmlwdG9yXFByb2plY3REZXNjcmlwdG9yQnVpbGRlciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjI0OiJQcm9qZWN0RGVzY3JpcHRvckJ1aWxkZXIiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoyNDoicHJvamVjdERlc2NyaXB0b3JCdWlsZGVyIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQxOiJccGhwRG9jdW1lbnRvclxQaXBlbGluZVxQaXBlbGluZUludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE3OiJQaXBlbGluZUludGVyZmFjZSI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjg6InBpcGVsaW5lIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUwOiJcU3ltZm9ueVxDb21wb25lbnRcRXZlbnREaXNwYXRjaGVyXEV2ZW50RGlzcGF0Y2hlciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJFdmVudERpc3BhdGNoZXIiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxNToiZXZlbnREaXNwYXRjaGVyIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToyMDM5O31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjY3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjIzMTQ7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjQ6IlxwaHBEb2N1bWVudG9yXENvbnNvbGVcQ29tbWFuZFxQcm9qZWN0XFJ1bkNvbW1hbmQ6Ol9fY29uc3RydWN0KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiX19jb25zdHJ1Y3QiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319czo2MjoiXHBocERvY3VtZW50b3JcQ29uc29sZVxDb21tYW5kXFByb2plY3RcUnVuQ29tbWFuZDo6Y29uZmlndXJlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo3MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToyNDMxO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI1OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo5ODc2O31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjI6IlxwaHBEb2N1bWVudG9yXENvbnNvbGVcQ29tbWFuZFxQcm9qZWN0XFJ1bkNvbW1hbmQ6OmNvbmZpZ3VyZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiY29uZmlndXJlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Nzk6IkluaXRpYWxpemVzIHRoaXMgY29tbWFuZCBhbmQgc2V0cyB0aGUgbmFtZSwgZGVzY3JpcHRpb24sIG9wdGlvbnMgYW5kCmFyZ3VtZW50cy4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6Mzc6InBocERvY3VtZW50b3JcQ29uc29sZVxDb21tYW5kXFByb2plY3QiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjE2OntzOjI0OiJQcm9qZWN0RGVzY3JpcHRvckJ1aWxkZXIiO3M6NDk6InBocERvY3VtZW50b3JcRGVzY3JpcHRvclxQcm9qZWN0RGVzY3JpcHRvckJ1aWxkZXIiO3M6MTU6IlByZVBhcnNpbmdFdmVudCI7czo0MjoicGhwRG9jdW1lbnRvclxQYXJzZXJcRXZlbnRcUHJlUGFyc2luZ0V2ZW50IjtzOjE3OiJQaXBlbGluZUludGVyZmFjZSI7czo0MDoicGhwRG9jdW1lbnRvclxQaXBlbGluZVxQaXBlbGluZUludGVyZmFjZSI7czoxNzoiUHJlVHJhbnNmb3JtRXZlbnQiO3M6NDk6InBocERvY3VtZW50b3JcVHJhbnNmb3JtZXJcRXZlbnRcUHJlVHJhbnNmb3JtRXZlbnQiO3M6MTE6IlRyYW5zZm9ybWVyIjtzOjM3OiJwaHBEb2N1bWVudG9yXFRyYW5zZm9ybWVyXFRyYW5zZm9ybWVyIjtzOjc6IkNvbW1hbmQiO3M6NDE6IlN5bWZvbnlcQ29tcG9uZW50XENvbnNvbGVcQ29tbWFuZFxDb21tYW5kIjtzOjExOiJQcm9ncmVzc0JhciI7czo0NDoiU3ltZm9ueVxDb21wb25lbnRcQ29uc29sZVxIZWxwZXJcUHJvZ3Jlc3NCYXIiO3M6MTA6IkFycmF5SW5wdXQiO3M6NDI6IlN5bWZvbnlcQ29tcG9uZW50XENvbnNvbGVcSW5wdXRcQXJyYXlJbnB1dCI7czoxNDoiSW5wdXRJbnRlcmZhY2UiO3M6NDY6IlN5bWZvbnlcQ29tcG9uZW50XENvbnNvbGVcSW5wdXRcSW5wdXRJbnRlcmZhY2UiO3M6MTE6IklucHV0T3B0aW9uIjtzOjQzOiJTeW1mb255XENvbXBvbmVudFxDb25zb2xlXElucHV0XElucHV0T3B0aW9uIjtzOjE1OiJPdXRwdXRJbnRlcmZhY2UiO3M6NDg6IlN5bWZvbnlcQ29tcG9uZW50XENvbnNvbGVcT3V0cHV0XE91dHB1dEludGVyZmFjZSI7czoxMToiT3V0cHV0U3R5bGUiO3M6NDM6IlN5bWZvbnlcQ29tcG9uZW50XENvbnNvbGVcU3R5bGVcT3V0cHV0U3R5bGUiO3M6MTI6IlN5bWZvbnlTdHlsZSI7czo0NDoiU3ltZm9ueVxDb21wb25lbnRcQ29uc29sZVxTdHlsZVxTeW1mb255U3R5bGUiO3M6MTU6IkV2ZW50RGlzcGF0Y2hlciI7czo0OToiU3ltZm9ueVxDb21wb25lbnRcRXZlbnREaXNwYXRjaGVyXEV2ZW50RGlzcGF0Y2hlciI7czo5OiJTdG9wd2F0Y2giO3M6Mzc6IlN5bWZvbnlcQ29tcG9uZW50XFN0b3B3YXRjaFxTdG9wd2F0Y2giO3M6MTQ6IlN0b3B3YXRjaEV2ZW50IjtzOjQyOiJTeW1mb255XENvbXBvbmVudFxTdG9wd2F0Y2hcU3RvcHdhdGNoRXZlbnQiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fXM6NjA6IlxwaHBEb2N1bWVudG9yXENvbnNvbGVcQ29tbWFuZFxQcm9qZWN0XFJ1bkNvbW1hbmQ6OmV4ZWN1dGUoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEzOntzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDc6IlxTeW1mb255XENvbXBvbmVudFxDb25zb2xlXElucHV0XElucHV0SW50ZXJmYWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTQ6IklucHV0SW50ZXJmYWNlIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NToiaW5wdXQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDk6IlxTeW1mb255XENvbXBvbmVudFxDb25zb2xlXE91dHB1dFxPdXRwdXRJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiT3V0cHV0SW50ZXJmYWNlIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6Njoib3V0cHV0IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNjQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6OTk2Mjt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyOTg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MTExOTA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjYwOiJccGhwRG9jdW1lbnRvclxDb25zb2xlXENvbW1hbmRcUHJvamVjdFxSdW5Db21tYW5kOjpleGVjdXRlKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJleGVjdXRlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTU6IkV4ZWN1dGVzIHRoZSBidXNpbmVzcyBsb2dpYyBpbnZvbHZlZCB3aXRoIHRoaXMgY29tbWFuZC4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjoxOTA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fXM6ODY6IlxwaHBEb2N1bWVudG9yXENvbnNvbGVcQ29tbWFuZFxQcm9qZWN0XFJ1bkNvbW1hbmQ6Om9ic2VydmVQcm9ncmVzc1RvU2hvd1Byb2dyZXNzQmFycygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NzoiXFN5bWZvbnlcQ29tcG9uZW50XENvbnNvbGVcSW5wdXRcSW5wdXRJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNDoiSW5wdXRJbnRlcmZhY2UiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo1OiJpbnB1dCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NDoiXFN5bWZvbnlcQ29tcG9uZW50XENvbnNvbGVcU3R5bGVcT3V0cHV0U3R5bGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiT3V0cHV0U3R5bGUiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo2OiJvdXRwdXQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMwMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToxMTE5Nzt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNTM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MTMzMzU7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo4NjoiXHBocERvY3VtZW50b3JcQ29uc29sZVxDb21tYW5kXFByb2plY3RcUnVuQ29tbWFuZDo6b2JzZXJ2ZVByb2dyZXNzVG9TaG93UHJvZ3Jlc3NCYXJzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czozMzoib2JzZXJ2ZVByb2dyZXNzVG9TaG93UHJvZ3Jlc3NCYXJzIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjY3OiJccGhwRG9jdW1lbnRvclxDb25zb2xlXENvbW1hbmRcUHJvamVjdFxSdW5Db21tYW5kOjpkdXJhdGlvbkluVGV4dCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MzoiXFN5bWZvbnlcQ29tcG9uZW50XFN0b3B3YXRjaFxTdG9wd2F0Y2hFdmVudCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE0OiJTdG9wd2F0Y2hFdmVudCI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjU6ImV2ZW50IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNTU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MTMzNDI7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzY3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjEzNzYzO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2NzoiXHBocERvY3VtZW50b3JcQ29uc29sZVxDb21tYW5kXFByb2plY3RcUnVuQ29tbWFuZDo6ZHVyYXRpb25JblRleHQoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE0OiJkdXJhdGlvbkluVGV4dCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjU3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzY4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ5OiJccGhwRG9jdW1lbnRvclxDb25zb2xlXENvbW1hbmRcUHJvamVjdFxSdW5Db21tYW5kIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6IlJ1bkNvbW1hbmQiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjc1OiJQYXJzZSBhbmQgdHJhbnNmb3JtIHRoZSBnaXZlbiBkaXJlY3RvcnkgKC1kfC1mKSB0byB0aGUgZ2l2ZW4gbG9jYXRpb24gKC10KS4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NTk4OiJwaHBEb2N1bWVudG9yIGNyZWF0ZXMgZG9jdW1lbnRhdGlvbiBmcm9tIFBIUCBzb3VyY2UgZmlsZXMuIFRoZSBzaW1wbGVzdCB3YXkKdG8gdXNlIGl0IGlzOgoKICAgICQgcGhwZG9jIHJ1biAtZCA8ZGlyZWN0b3J5IHRvIHBhcnNlPiAtdCA8b3V0cHV0IGRpcmVjdG9yeT4KClRoaXMgd2lsbCBwYXJzZSBldmVyeSBmaWxlIGVuZGluZyB3aXRoIC5waHAsIC5waHAzIGFuZCAucGh0bWwgaW4gPGRpcmVjdG9yeQp0byBwYXJzZT4gYW5kIHRoZW4gb3V0cHV0IGEgSFRNTCBzaXRlIGNvbnRhaW5pbmcgZWFzaWx5IHJlYWRhYmxlIGRvY3VtZW50YXRpb24KaW4gPG91dHB1dCBkaXJlY3Rvcnk+LgoKcGhwRG9jdW1lbnRvciB3aWxsIHRyeSB0byBsb29rIGZvciBhIHBocGRvYy5kaXN0LnhtbCBvciBwaHBkb2MueG1sIGZpbGUgaW4geW91cgpjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IGFuZCB1c2UgdGhhdCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBzZXR0aW5ncyBpZgpwcmVzZW50LiBJbiB0aGUgY29uZmlndXJhdGlvbiBmaWxlIGNhbiB5b3Ugc3BlY2lmeSB0aGUgc2FtZSBzZXR0aW5ncyAoYW5kCm1vcmUpIGFzIHRoZSBjb21tYW5kIGxpbmUgcHJvdmlkZXMuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjoxOTA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcGFyZW50IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDI6IlxTeW1mb255XENvbXBvbmVudFxDb25zb2xlXENvbW1hbmRcQ29tbWFuZCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6IkNvbW1hbmQiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcmVhZE9ubHkiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhdHRyaWJ1dGVzIjthOjA6e319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fXM6NDA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZW51bXMiO2E6MDp7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiYmUxZjJkODQ2NWJmODliNWQ0OTc5M2Q5OGMyMDRlNmMiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czo5MToidmVuZG9yL3BocGRvY3VtZW50b3IvcGhwZG9jdW1lbnRvci9zcmMvcGhwRG9jdW1lbnRvci9Db25zb2xlL0NvbW1hbmQvUHJvamVjdC9SdW5Db21tYW5kLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6MTM3Njc6Ijw/cGhwCgpkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKCi8qKgogKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBwaHBEb2N1bWVudG9yLgogKgogKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRQogKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS4KICoKICogQGxpbmsgaHR0cHM6Ly9waHBkb2Mub3JnCiAqLwoKbmFtZXNwYWNlIHBocERvY3VtZW50b3JcQ29uc29sZVxDb21tYW5kXFByb2plY3Q7Cgp1c2UgcGhwRG9jdW1lbnRvclxEZXNjcmlwdG9yXFByb2plY3REZXNjcmlwdG9yQnVpbGRlcjsKdXNlIHBocERvY3VtZW50b3JcUGFyc2VyXEV2ZW50XFByZVBhcnNpbmdFdmVudDsKdXNlIHBocERvY3VtZW50b3JcUGlwZWxpbmVcUGlwZWxpbmVJbnRlcmZhY2U7CnVzZSBwaHBEb2N1bWVudG9yXFRyYW5zZm9ybWVyXEV2ZW50XFByZVRyYW5zZm9ybUV2ZW50Owp1c2UgcGhwRG9jdW1lbnRvclxUcmFuc2Zvcm1lclxUcmFuc2Zvcm1lcjsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XENvbnNvbGVcQ29tbWFuZFxDb21tYW5kOwp1c2UgU3ltZm9ueVxDb21wb25lbnRcQ29uc29sZVxIZWxwZXJcUHJvZ3Jlc3NCYXI7CnVzZSBTeW1mb255XENvbXBvbmVudFxDb25zb2xlXElucHV0XEFycmF5SW5wdXQ7CnVzZSBTeW1mb255XENvbXBvbmVudFxDb25zb2xlXElucHV0XElucHV0SW50ZXJmYWNlOwp1c2UgU3ltZm9ueVxDb21wb25lbnRcQ29uc29sZVxJbnB1dFxJbnB1dE9wdGlvbjsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XENvbnNvbGVcT3V0cHV0XE91dHB1dEludGVyZmFjZTsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XENvbnNvbGVcU3R5bGVcT3V0cHV0U3R5bGU7CnVzZSBTeW1mb255XENvbXBvbmVudFxDb25zb2xlXFN0eWxlXFN5bWZvbnlTdHlsZTsKdXNlIFN5bWZvbnlcQ29tcG9uZW50XEV2ZW50RGlzcGF0Y2hlclxFdmVudERpc3BhdGNoZXI7CnVzZSBTeW1mb255XENvbXBvbmVudFxTdG9wd2F0Y2hcU3RvcHdhdGNoOwp1c2UgU3ltZm9ueVxDb21wb25lbnRcU3RvcHdhdGNoXFN0b3B3YXRjaEV2ZW50OwoKdXNlIGZ1bmN0aW9uIGNvdW50Owp1c2UgZnVuY3Rpb24gZmlsZV9wdXRfY29udGVudHM7CnVzZSBmdW5jdGlvbiBmbG9vcjsKdXNlIGZ1bmN0aW9uIHJvdW5kOwp1c2UgZnVuY3Rpb24gc2VyaWFsaXplOwp1c2UgZnVuY3Rpb24gc3ByaW50ZjsKCi8qKgogKiBQYXJzZSBhbmQgdHJhbnNmb3JtIHRoZSBnaXZlbiBkaXJlY3RvcnkgKC1kfC1mKSB0byB0aGUgZ2l2ZW4gbG9jYXRpb24gKC10KS4KICoKICogcGhwRG9jdW1lbnRvciBjcmVhdGVzIGRvY3VtZW50YXRpb24gZnJvbSBQSFAgc291cmNlIGZpbGVzLiBUaGUgc2ltcGxlc3Qgd2F5CiAqIHRvIHVzZSBpdCBpczoKICoKICogICAgICQgcGhwZG9jIHJ1biAtZCA8ZGlyZWN0b3J5IHRvIHBhcnNlPiAtdCA8b3V0cHV0IGRpcmVjdG9yeT4KICoKICogVGhpcyB3aWxsIHBhcnNlIGV2ZXJ5IGZpbGUgZW5kaW5nIHdpdGggLnBocCwgLnBocDMgYW5kIC5waHRtbCBpbiA8ZGlyZWN0b3J5CiAqIHRvIHBhcnNlPiBhbmQgdGhlbiBvdXRwdXQgYSBIVE1MIHNpdGUgY29udGFpbmluZyBlYXNpbHkgcmVhZGFibGUgZG9jdW1lbnRhdGlvbgogKiBpbiA8b3V0cHV0IGRpcmVjdG9yeT4uCiAqCiAqIHBocERvY3VtZW50b3Igd2lsbCB0cnkgdG8gbG9vayBmb3IgYSBwaHBkb2MuZGlzdC54bWwgb3IgcGhwZG9jLnhtbCBmaWxlIGluIHlvdXIKICogY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSBhbmQgdXNlIHRoYXQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgc2V0dGluZ3MgaWYKICogcHJlc2VudC4gSW4gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBjYW4geW91IHNwZWNpZnkgdGhlIHNhbWUgc2V0dGluZ3MgKGFuZAogKiBtb3JlKSBhcyB0aGUgY29tbWFuZCBsaW5lIHByb3ZpZGVzLgogKi8KY2xhc3MgUnVuQ29tbWFuZCBleHRlbmRzIENvbW1hbmQKewogICAgcHJpdmF0ZSBQcm9ncmVzc0JhcnxudWxsICRwcm9ncmVzc0JhciA9IG51bGw7CgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KAogICAgICAgIHByaXZhdGUgcmVhZG9ubHkgUHJvamVjdERlc2NyaXB0b3JCdWlsZGVyICRwcm9qZWN0RGVzY3JpcHRvckJ1aWxkZXIsCiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBQaXBlbGluZUludGVyZmFjZSAkcGlwZWxpbmUsCiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBFdmVudERpc3BhdGNoZXIgJGV2ZW50RGlzcGF0Y2hlciwKICAgICkgewogICAgICAgIHBhcmVudDo6X19jb25zdHJ1Y3QoJ3Byb2plY3Q6cnVuJyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBJbml0aWFsaXplcyB0aGlzIGNvbW1hbmQgYW5kIHNldHMgdGhlIG5hbWUsIGRlc2NyaXB0aW9uLCBvcHRpb25zIGFuZAogICAgICogYXJndW1lbnRzLgogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY29uZmlndXJlKCk6IHZvaWQKICAgIHsKICAgICAgICAkdGhpcy0+c2V0TmFtZSgncHJvamVjdDpydW4nKQogICAgICAgICAgICAtPnNldEFsaWFzZXMoWydydW4nXSkKICAgICAgICAgICAgLT5zZXREZXNjcmlwdGlvbigKICAgICAgICAgICAgICAgICdQYXJzZXMgYW5kIHRyYW5zZm9ybXMgdGhlIGdpdmVuIGZpbGVzIHRvIGEgc3BlY2lmaWVkIGxvY2F0aW9uJywKICAgICAgICAgICAgKQogICAgICAgICAgICAtPnNldEhlbHAoCiAgICAgICAgICAgICAgICA8PDxIRUxQCiAgICAgICAgICAgICAgICBwaHBEb2N1bWVudG9yIGNyZWF0ZXMgZG9jdW1lbnRhdGlvbiBmcm9tIFBIUCBzb3VyY2UgZmlsZXMuIFRoZSBzaW1wbGVzdCB3YXkKICAgICAgICAgICAgICAgIHRvIHVzZSBpdCBpczoKCiAgICAgICAgICAgICAgICAgICAgPGluZm8+JCBwaHBkb2MgcnVuIC1kIFtkaXJlY3RvcnkgdG8gcGFyc2VdIC10IFtvdXRwdXQgZGlyZWN0b3J5XTwvaW5mbz4KCiAgICAgICAgICAgICAgICBUaGlzIHdpbGwgcGFyc2UgZXZlcnkgZmlsZSBlbmRpbmcgd2l0aCAucGhwIGluIDxkaXJlY3RvcnkKICAgICAgICAgICAgICAgIHRvIHBhcnNlPiBhbmQgdGhlbiBvdXRwdXQgYSBIVE1MIHNpdGUgY29udGFpbmluZyBlYXNpbHkgcmVhZGFibGUgZG9jdW1lbnRhdGlvbgogICAgICAgICAgICAgICAgaW4gPG91dHB1dCBkaXJlY3Rvcnk+LgoKICAgICAgICAgICAgICAgIHBocERvY3VtZW50b3Igd2lsbCB0cnkgdG8gbG9vayBmb3IgYSBwaHBkb2MuZGlzdC54bWwgb3IgcGhwZG9jLnhtbCBmaWxlIGluIHlvdXIKICAgICAgICAgICAgICAgIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgYW5kIHVzZSB0aGF0IHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHNldHRpbmdzIGlmCiAgICAgICAgICAgICAgICBwcmVzZW50LiBJbiB0aGUgY29uZmlndXJhdGlvbiBmaWxlIGNhbiB5b3Ugc3BlY2lmeSB0aGUgc2FtZSBzZXR0aW5ncyAoYW5kCiAgICAgICAgICAgICAgICBtb3JlKSBhcyB0aGUgY29tbWFuZCBsaW5lIHByb3ZpZGVzLgoKICAgICAgICAgICAgICAgIDxjb21tZW50Pk90aGVyIGNvbW1hbmRzPC9jb21tZW50PgogICAgICAgICAgICAgICAgSW4gYWRkaXRpb24gdG8gdGhpcyBjb21tYW5kIHBocERvY3VtZW50b3IgYWxzbyBzdXBwb3J0cyBhZGRpdGlvbmFsIGNvbW1hbmRzOgoKICAgICAgICAgICAgICAgIDxjb21tZW50PkF2YWlsYWJsZSBjb21tYW5kczo8L2NvbW1lbnQ+CiAgICAgICAgICAgICAgICA8aW5mbz4gIGhlbHAKICAgICAgICAgICAgICAgICAgbGlzdAogICAgICAgICAgICAgICAgICBydW4KICAgICAgICAgICAgICAgIDxjb21tZW50PnByb2plY3Q8L2NvbW1lbnQ+CiAgICAgICAgICAgICAgICAgIHByb2plY3Q6cnVuCiAgICAgICAgICAgICAgICA8L2luZm8+CgogICAgICAgICAgICAgICAgWW91IGNhbiBnZXQgYSBtb3JlIGRldGFpbGVkIGxpc3Rpbmcgb2YgdGhlIGNvbW1hbmRzIHVzaW5nIHRoZSA8aW5mbz5saXN0PC9pbmZvPgogICAgICAgICAgICAgICAgY29tbWFuZCBhbmQgZ2V0IGhlbHAgYnkgcHJlcGVuZGluZyB0aGUgd29yZCA8aW5mbz5oZWxwPC9pbmZvPiB0byB0aGUgY29tbWFuZAogICAgICAgICAgICAgICAgbmFtZS4KSEVMUCwKICAgICAgICAgICAgKQogICAgICAgICAgICAtPmFkZE9wdGlvbigKICAgICAgICAgICAgICAgICd0YXJnZXQnLAogICAgICAgICAgICAgICAgJ3QnLAogICAgICAgICAgICAgICAgSW5wdXRPcHRpb246OlZBTFVFX09QVElPTkFMLAogICAgICAgICAgICAgICAgJ1BhdGggd2hlcmUgdG8gc3RvcmUgdGhlIGdlbmVyYXRlZCBvdXRwdXQnLAogICAgICAgICAgICApCiAgICAgICAgICAgIC0+YWRkT3B0aW9uKAogICAgICAgICAgICAgICAgJ2NhY2hlLWZvbGRlcicsCiAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgSW5wdXRPcHRpb246OlZBTFVFX09QVElPTkFMLAogICAgICAgICAgICAgICAgJ1BhdGggd2hlcmUgdG8gc3RvcmUgdGhlIGNhY2hlIGZpbGVzJywKICAgICAgICAgICAgKQogICAgICAgICAgICAtPmFkZE9wdGlvbigKICAgICAgICAgICAgICAgICdmaWxlbmFtZScsCiAgICAgICAgICAgICAgICAnZicsCiAgICAgICAgICAgICAgICBJbnB1dE9wdGlvbjo6VkFMVUVfT1BUSU9OQUwgfCBJbnB1dE9wdGlvbjo6VkFMVUVfSVNfQVJSQVksCiAgICAgICAgICAgICAgICAnRmlsZSB0byBwYXJzZSwgZ2xvYiBwYXR0ZXJucyBhcmUgc3VwcG9ydGVkLiBQcm92aWRlIG11bHRpcGxlIG9wdGlvbnMgb2YgdGhpcyB0eXBlIHRvIGFkZAogICAgICAgICAgICAgICAgbXVsdGlwbGUgZmlsZXMuJywKICAgICAgICAgICAgKQogICAgICAgICAgICAtPmFkZE9wdGlvbigKICAgICAgICAgICAgICAgICdkaXJlY3RvcnknLAogICAgICAgICAgICAgICAgJ2QnLAogICAgICAgICAgICAgICAgSW5wdXRPcHRpb246OlZBTFVFX09QVElPTkFMIHwgSW5wdXRPcHRpb246OlZBTFVFX0lTX0FSUkFZLAogICAgICAgICAgICAgICAgJ2RpcmVjdG9yeSB0byBwYXJzZSwgZ2xvYiBwYXR0ZXJucyBhcmUgc3VwcG9ydGVkLiBQcm92aWRlIG11bHRpcGxlIG9wdGlvbnMgb2YgdGhpcyB0eXBlIHRvIGFkZAogICAgICAgICAgICAgICAgbXVsdGlwbGUgZGlyZWN0b3JpZXMuJywKICAgICAgICAgICAgKQogICAgICAgICAgICAtPmFkZE9wdGlvbigKICAgICAgICAgICAgICAgICdlbmNvZGluZycsCiAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgSW5wdXRPcHRpb246OlZBTFVFX09QVElPTkFMLAogICAgICAgICAgICAgICAgJ2VuY29kaW5nIHRvIGJlIHVzZWQgdG8gaW50ZXJwcmV0IHNvdXJjZSBmaWxlcyB3aXRoJywKICAgICAgICAgICAgKQogICAgICAgICAgICAtPmFkZE9wdGlvbigKICAgICAgICAgICAgICAgICdleHRlbnNpb25zJywKICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICBJbnB1dE9wdGlvbjo6VkFMVUVfT1BUSU9OQUwgfCBJbnB1dE9wdGlvbjo6VkFMVUVfSVNfQVJSQVksCiAgICAgICAgICAgICAgICAnUHJvdmlkZSBtdWx0aXBsZSBvcHRpb25zIG9mIHRoaXMgdHlwZSB0byBhZGQgbXVsdGlwbGUgZXh0ZW5zaW9ucy4gZGVmYXVsdCBpcyBwaHAnLAogICAgICAgICAgICApCiAgICAgICAgICAgIC0+YWRkT3B0aW9uKAogICAgICAgICAgICAgICAgJ2lnbm9yZScsCiAgICAgICAgICAgICAgICAnaScsCiAgICAgICAgICAgICAgICBJbnB1dE9wdGlvbjo6VkFMVUVfT1BUSU9OQUwgfCBJbnB1dE9wdGlvbjo6VkFMVUVfSVNfQVJSQVksCiAgICAgICAgICAgICAgICAnRmlsZShzKSBhbmQgZGlyZWN0b3JpZXMgKHJlbGF0aXZlIHRvIHRoZSBzb3VyY2UtY29kZSBkaXJlY3RvcnkpIHRoYXQgd2lsbCBiZSAnCiAgICAgICAgICAgICAgICAuICdpZ25vcmVkLiBHbG9iIHBhdHRlcm5zIGFyZSBzdXBwb3J0ZWQuIEFkZCBtdWx0aXBsZSBvcHRpb25zIG9mIHRoaXMgdHlwZSBvZiBhZGQgbW9yZSBpZ25vcmUgcGF0dGVybnMnLAogICAgICAgICAgICApCiAgICAgICAgICAgIC0+YWRkT3B0aW9uKAogICAgICAgICAgICAgICAgJ2lnbm9yZS10YWdzJywKICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICBJbnB1dE9wdGlvbjo6VkFMVUVfT1BUSU9OQUwgfCBJbnB1dE9wdGlvbjo6VkFMVUVfSVNfQVJSQVksCiAgICAgICAgICAgICAgICAnVGFnIHRoYXQgd2lsbCBiZSBpZ25vcmVkLCBkZWZhdWx0cyB0byBub25lLiBwYWNrYWdlLCBzdWJwYWNrYWdlIGFuZCBpZ25vcmUgJwogICAgICAgICAgICAgICAgLiAnbWF5IG5vdCBiZSBpZ25vcmVkLiBBZGQgbXVsdGlwbGUgb3B0aW9ucyBvZiB0aGlzIHR5cGUgdG8gaWdub3JlIG11bHRpcGxlIHRhZ3MuJywKICAgICAgICAgICAgKQogICAgICAgICAgICAtPmFkZE9wdGlvbigKICAgICAgICAgICAgICAgICdoaWRkZW4nLAogICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgIElucHV0T3B0aW9uOjpWQUxVRV9OT05FLAogICAgICAgICAgICAgICAgJ1VzZSB0aGlzIG9wdGlvbiB0byB0ZWxsIHBocERvY3VtZW50b3IgdG8gcGFyc2UgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHRoYXQgYmVnaW4gd2l0aCBhIHBlcmlvZCAoLiksICcKICAgICAgICAgICAgICAgIC4gJ2J5IGRlZmF1bHQgdGhlc2UgYXJlIGlnbm9yZWQnLAogICAgICAgICAgICApCiAgICAgICAgICAgIC0+YWRkT3B0aW9uKAogICAgICAgICAgICAgICAgJ2lnbm9yZS1zeW1saW5rcycsCiAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgSW5wdXRPcHRpb246OlZBTFVFX05FR0FUQUJMRSwKICAgICAgICAgICAgICAgICdJZ25vcmUgc3ltbGlua3MgdG8gb3RoZXIgZmlsZXMgb3IgZGlyZWN0b3JpZXMsIGRlZmF1bHQgaXMgb24nLAogICAgICAgICAgICApCiAgICAgICAgICAgIC0+YWRkT3B0aW9uKAogICAgICAgICAgICAgICAgJ21hcmtlcnMnLAogICAgICAgICAgICAgICAgJ20nLAogICAgICAgICAgICAgICAgSW5wdXRPcHRpb246OlZBTFVFX09QVElPTkFMIHwgSW5wdXRPcHRpb246OlZBTFVFX0lTX0FSUkFZLAogICAgICAgICAgICAgICAgJ0NvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIG1hcmtlcnMvdGFncyB0byBmaWx0ZXInLAogICAgICAgICAgICApCiAgICAgICAgICAgIC0+YWRkT3B0aW9uKAogICAgICAgICAgICAgICAgJ3RpdGxlJywKICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICBJbnB1dE9wdGlvbjo6VkFMVUVfT1BUSU9OQUwsCiAgICAgICAgICAgICAgICAnU2V0cyB0aGUgdGl0bGUgZm9yIHRoaXMgcHJvamVjdDsgZGVmYXVsdCBpcyB0aGUgcGhwRG9jdW1lbnRvciBsb2dvJywKICAgICAgICAgICAgKQogICAgICAgICAgICAtPmFkZE9wdGlvbigKICAgICAgICAgICAgICAgICdmb3JjZScsCiAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgSW5wdXRPcHRpb246OlZBTFVFX05PTkUsCiAgICAgICAgICAgICAgICAnRm9yY2VzIGEgZnVsbCBidWlsZCBvZiB0aGUgZG9jdW1lbnRhdGlvbiwgZG9lcyBub3QgaW5jcmVtZW50IGV4aXN0aW5nIGRvY3VtZW50YXRpb24nLAogICAgICAgICAgICApCiAgICAgICAgICAgIC0+YWRkT3B0aW9uKAogICAgICAgICAgICAgICAgJ3ZhbGlkYXRlJywKICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICBJbnB1dE9wdGlvbjo6VkFMVUVfTk9ORSwKICAgICAgICAgICAgICAgICdWYWxpZGF0ZXMgZXZlcnkgcHJvY2Vzc2VkIGZpbGUgdXNpbmcgUEhQIExpbnQsIGNvc3RzIGEgbG90IG9mIHBlcmZvcm1hbmNlJywKICAgICAgICAgICAgKQogICAgICAgICAgICAtPmFkZE9wdGlvbigKICAgICAgICAgICAgICAgICd2aXNpYmlsaXR5JywKICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICBJbnB1dE9wdGlvbjo6VkFMVUVfT1BUSU9OQUwgfCBJbnB1dE9wdGlvbjo6VkFMVUVfSVNfQVJSQVksCiAgICAgICAgICAgICAgICAnU3BlY2lmaWVzIHRoZSBwYXJzZSB2aXNpYmlsaXR5IHRoYXQgc2hvdWxkIGJlIGRpc3BsYXllZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gQWRkIG11bHRpcGxlIG9wdGlvbnMgb2YKICAgICAgICAgICAgICAgIHRoaXMgdHlwZSB0byBzcGVjaWZ5IG11bHRpcGxlIGxldmVscy4nCiAgICAgICAgICAgICAgICAuICcoInB1YmxpYyxwcm90ZWN0ZWQiKScsCiAgICAgICAgICAgICkKICAgICAgICAgICAgLT5hZGRPcHRpb24oCiAgICAgICAgICAgICAgICAnZGVmYXVsdHBhY2thZ2VuYW1lJywKICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICBJbnB1dE9wdGlvbjo6VkFMVUVfT1BUSU9OQUwsCiAgICAgICAgICAgICAgICAnTmFtZSB0byB1c2UgZm9yIHRoZSBkZWZhdWx0IHBhY2thZ2UuJywKICAgICAgICAgICAgKQogICAgICAgICAgICAtPmFkZE9wdGlvbigKICAgICAgICAgICAgICAgICdzb3VyY2Vjb2RlJywKICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICBJbnB1dE9wdGlvbjo6VkFMVUVfTk9ORSB8IElucHV0T3B0aW9uOjpWQUxVRV9ORUdBVEFCTEUsCiAgICAgICAgICAgICAgICAnV2hldGhlciB0byBpbmNsdWRlIHN5bnRheCBoaWdobGlnaHRlZCBzb3VyY2UgY29kZScsCiAgICAgICAgICAgICkKICAgICAgICAgICAgLT5hZGRPcHRpb24oCiAgICAgICAgICAgICAgICAndGVtcGxhdGUnLAogICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgIElucHV0T3B0aW9uOjpWQUxVRV9PUFRJT05BTCB8IElucHV0T3B0aW9uOjpWQUxVRV9JU19BUlJBWSwKICAgICAgICAgICAgICAgICdOYW1lIG9mIHRoZSB0ZW1wbGF0ZSB0byB1c2UgKG9wdGlvbmFsKScsCiAgICAgICAgICAgICkKICAgICAgICAgICAgLT5hZGRPcHRpb24oCiAgICAgICAgICAgICAgICAnZXhhbXBsZXMtZGlyJywKICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICBJbnB1dE9wdGlvbjo6VkFMVUVfT1BUSU9OQUwsCiAgICAgICAgICAgICAgICAnRGlyZWN0b3J5IHRvIHNlYWNoZXIgZm9yIGV4YW1wbGUgZmlsZXMgcmVmZXJlbmNlZCBieSBAZXhhbXBsZSB0YWdzJywKICAgICAgICAgICAgKQogICAgICAgICAgICAtPmFkZE9wdGlvbigKICAgICAgICAgICAgICAgICdzZXR0aW5nJywKICAgICAgICAgICAgICAgICdzJywKICAgICAgICAgICAgICAgIElucHV0T3B0aW9uOjpWQUxVRV9PUFRJT05BTCB8IElucHV0T3B0aW9uOjpWQUxVRV9JU19BUlJBWSwKICAgICAgICAgICAgICAgICdQcm92aWRlIGN1c3RvbSBzZXR0aW5nKHMpIGFzICJrZXk9dmFsdWUiLCBydW4gYWdhaW4gd2l0aCA8aW5mbz4tLWxpc3Qtc2V0dGluZ3M8L2luZm8+IGZvciBhIGxpc3QnLAogICAgICAgICAgICApCiAgICAgICAgICAgIC0+YWRkT3B0aW9uKAogICAgICAgICAgICAgICAgJ2xpc3Qtc2V0dGluZ3MnLAogICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgIElucHV0T3B0aW9uOjpWQUxVRV9OT05FLAogICAgICAgICAgICAgICAgJ1JldHVybnMgYSBsaXN0IG9mIGF2YWlsYWJsZSBzZXR0aW5ncycsCiAgICAgICAgICAgICkKICAgICAgICAgICAgLT5hZGRPcHRpb24oCiAgICAgICAgICAgICAgICAncGFyc2Vwcml2YXRlJywKICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICBJbnB1dE9wdGlvbjo6VkFMVUVfTk9ORSwKICAgICAgICAgICAgICAgICdXaGV0aGVyIHRvIHBhcnNlIERvY0Jsb2NrcyBtYXJrZWQgd2l0aCBAaW50ZXJuYWwgdGFnJywKICAgICAgICAgICAgKQogICAgICAgICAgICAtPmFkZE9wdGlvbigKICAgICAgICAgICAgICAgICdwcm9ncmVzcycsCiAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgSW5wdXRPcHRpb246OlZBTFVFX05PTkUgfCBJbnB1dE9wdGlvbjo6VkFMVUVfTkVHQVRBQkxFLAogICAgICAgICAgICAgICAgJ0VuYWJsZSB0aGUgcHJvZ3Jlc3MgYmFyJywKICAgICAgICAgICAgKTsKCiAgICAgICAgcGFyZW50Ojpjb25maWd1cmUoKTsKICAgIH0KCiAgICAvKioKICAgICAqIEV4ZWN1dGVzIHRoZSBidXNpbmVzcyBsb2dpYyBpbnZvbHZlZCB3aXRoIHRoaXMgY29tbWFuZC4KICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGV4ZWN1dGUoSW5wdXRJbnRlcmZhY2UgJGlucHV0LCBPdXRwdXRJbnRlcmZhY2UgJG91dHB1dCk6IGludAogICAgewogICAgICAgICRzdG9wd2F0Y2ggPSBuZXcgU3RvcHdhdGNoKCk7CiAgICAgICAgJGV2ZW50ID0gJHN0b3B3YXRjaC0+c3RhcnQoJ2FsbCcpOwoKICAgICAgICAkaW8gPSBuZXcgU3ltZm9ueVN0eWxlKCRpbnB1dCwgJG91dHB1dCk7CgogICAgICAgICRvdXRwdXQtPndyaXRlbG4oJ3BocERvY3VtZW50b3IgJyAuICR0aGlzLT5nZXRBcHBsaWNhdGlvbigpLT5nZXRWZXJzaW9uKCkpOwogICAgICAgICRvdXRwdXQtPndyaXRlbG4oJycpOwoKICAgICAgICBpZiAoJGlucHV0LT5nZXRPcHRpb24oJ2xpc3Qtc2V0dGluZ3MnKSkgewogICAgICAgICAgICByZXR1cm4gKCR0aGlzLT5nZXRBcHBsaWNhdGlvbigpLT5maW5kKCdzZXR0aW5nczpsaXN0JykpCiAgICAgICAgICAgICAgICAtPnJ1bihuZXcgQXJyYXlJbnB1dChbXSksICRvdXRwdXQpOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPm9ic2VydmVQcm9ncmVzc1RvU2hvd1Byb2dyZXNzQmFycygkaW5wdXQsICRpbyk7CgogICAgICAgICRwaXBlTGluZSA9ICR0aGlzLT5waXBlbGluZTsKICAgICAgICAkcGlwZUxpbmUoJGlucHV0LT5nZXRPcHRpb25zKCkpOwoKICAgICAgICBpZiAoJG91dHB1dC0+Z2V0VmVyYm9zaXR5KCkgPT09IE91dHB1dEludGVyZmFjZTo6VkVSQk9TSVRZX0RFQlVHKSB7CiAgICAgICAgICAgIGZpbGVfcHV0X2NvbnRlbnRzKCdhc3QuZHVtcCcsIHNlcmlhbGl6ZSgkdGhpcy0+cHJvamVjdERlc2NyaXB0b3JCdWlsZGVyLT5nZXRQcm9qZWN0RGVzY3JpcHRvcigpKSk7CiAgICAgICAgfQoKICAgICAgICAkZXZlbnQtPnN0b3AoKTsKICAgICAgICAkb3V0cHV0LT53cml0ZWxuKCcnKTsKCiAgICAgICAgaWYgKCRvdXRwdXQtPmdldFZlcmJvc2l0eSgpID09PSBPdXRwdXRJbnRlcmZhY2U6OlZFUkJPU0lUWV9WRVJCT1NFKSB7CiAgICAgICAgICAgICRvdXRwdXQtPndyaXRlbG4oc3ByaW50ZignT2JzZXJ2ZWQgbWF4LiBtZW1vcnkgdXNhZ2U6ICVzIG1iJywgcm91bmQoJGV2ZW50LT5nZXRNZW1vcnkoKSAvIDEwMjQgLyAxMDI0LCAyKSkpOwogICAgICAgIH0KCiAgICAgICAgJG91dHB1dC0+d3JpdGVsbihzcHJpbnRmKCdBbGwgZG9uZSBpbiAlcyEnLCAkdGhpcy0+ZHVyYXRpb25JblRleHQoJGV2ZW50KSkpOwoKICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIG9ic2VydmVQcm9ncmVzc1RvU2hvd1Byb2dyZXNzQmFycyhJbnB1dEludGVyZmFjZSAkaW5wdXQsIE91dHB1dFN0eWxlICRvdXRwdXQpOiB2b2lkCiAgICB7CiAgICAgICAgLy8gQ29kZSB0aGF0IGlzIHBvb3JseSB0ZXN0YWJsZSBhbmQgbm90IHdvcnRoIHRoZSBlZmZvcnQKICAgICAgICAvLyBAY29kZUNvdmVyYWdlSWdub3JlU3RhcnQKICAgICAgICBpZiAoJG91dHB1dC0+Z2V0VmVyYm9zaXR5KCkgIT09IE91dHB1dEludGVyZmFjZTo6VkVSQk9TSVRZX05PUk1BTCkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+ZXZlbnREaXNwYXRjaGVyLT5hZGRMaXN0ZW5lcigKICAgICAgICAgICAgUHJlUGFyc2luZ0V2ZW50OjpjbGFzcywKICAgICAgICAgICAgZnVuY3Rpb24gKFByZVBhcnNpbmdFdmVudCAkZXZlbnQpIHVzZSAoJGlucHV0LCAkb3V0cHV0KTogdm9pZCB7CiAgICAgICAgICAgICAgICAkb3V0cHV0LT53cml0ZWxuKCdQYXJzaW5nIHNvdXJjZSBmaWxlcycpOwogICAgICAgICAgICAgICAgaWYgKCRpbnB1dC0+Z2V0T3B0aW9uKCdwcm9ncmVzcycpICE9PSBudWxsICYmICRpbnB1dC0+Z2V0T3B0aW9uKCdwcm9ncmVzcycpICE9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICR0aGlzLT5wcm9ncmVzc0JhciA9ICRvdXRwdXQtPmNyZWF0ZVByb2dyZXNzQmFyKCRldmVudC0+Z2V0RmlsZUNvdW50KCkpOwogICAgICAgICAgICAgICAgJHRoaXMtPnByb2dyZXNzQmFyLT5zdGFydCgpOwogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgIGlmICgkaW5wdXQtPmdldE9wdGlvbigncHJvZ3Jlc3MnKSA9PT0gbnVsbCB8fCAkaW5wdXQtPmdldE9wdGlvbigncHJvZ3Jlc3MnKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAkdGhpcy0+ZXZlbnREaXNwYXRjaGVyLT5hZGRMaXN0ZW5lcigKICAgICAgICAgICAgICAgICdwYXJzZXIuZmlsZS5wcmUnLAogICAgICAgICAgICAgICAgZnVuY3Rpb24gKCk6IHZvaWQgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5wcm9ncmVzc0Jhci0+YWR2YW5jZSgpOwogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5ldmVudERpc3BhdGNoZXItPmFkZExpc3RlbmVyKAogICAgICAgICAgICBUcmFuc2Zvcm1lcjo6RVZFTlRfUFJFX1RSQU5TRk9STSwKICAgICAgICAgICAgZnVuY3Rpb24gKFByZVRyYW5zZm9ybUV2ZW50ICRldmVudCkgdXNlICgkaW5wdXQsICRvdXRwdXQpOiB2b2lkIHsKICAgICAgICAgICAgICAgICRvdXRwdXQtPndyaXRlbG4oJycpOwogICAgICAgICAgICAgICAgJG91dHB1dC0+d3JpdGVsbignQXBwbHlpbmcgdHJhbnNmb3JtYXRpb25zIChjYW4gdGFrZSBhIHdoaWxlKScpOwogICAgICAgICAgICAgICAgaWYgKCRpbnB1dC0+Z2V0T3B0aW9uKCdwcm9ncmVzcycpICE9PSBudWxsICYmICRpbnB1dC0+Z2V0T3B0aW9uKCdwcm9ncmVzcycpICE9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICR0aGlzLT5wcm9ncmVzc0JhciA9ICRvdXRwdXQtPmNyZWF0ZVByb2dyZXNzQmFyKGNvdW50KCRldmVudC0+Z2V0VHJhbnNmb3JtYXRpb25zKCkpKTsKICAgICAgICAgICAgICAgICR0aGlzLT5wcm9ncmVzc0Jhci0+c3RhcnQoKTsKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICBpZiAoJGlucHV0LT5nZXRPcHRpb24oJ3Byb2dyZXNzJykgPT09IG51bGwgfHwgJGlucHV0LT5nZXRPcHRpb24oJ3Byb2dyZXNzJykgPT09IHRydWUpIHsKICAgICAgICAgICAgJHRoaXMtPmV2ZW50RGlzcGF0Y2hlci0+YWRkTGlzdGVuZXIoCiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1lcjo6RVZFTlRfUE9TVF9UUkFOU0ZPUk1BVElPTiwKICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpOiB2b2lkIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+cHJvZ3Jlc3NCYXItPmFkdmFuY2UoKTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIC8vIEBjb2RlQ292ZXJhZ2VJZ25vcmVFbmQKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIGR1cmF0aW9uSW5UZXh0KFN0b3B3YXRjaEV2ZW50ICRldmVudCk6IHN0cmluZwogICAgewogICAgICAgICRkdXJhdGlvblRleHQgPSAnJzsKICAgICAgICAkZHVyYXRpb24gPSByb3VuZCgkZXZlbnQtPmdldER1cmF0aW9uKCkgLyAxMDAwKTsKICAgICAgICBpZiAoJGR1cmF0aW9uID4gNTkpIHsKICAgICAgICAgICAgJG1pbnV0ZXMgPSBmbG9vcigkZHVyYXRpb24gLyA2MCk7CiAgICAgICAgICAgICRkdXJhdGlvblRleHQgLj0gc3ByaW50ZignJXMgbWludXRlJXMgJywgJG1pbnV0ZXMsICRtaW51dGVzID4gMSA/ICdzJyA6ICcnKTsKICAgICAgICB9CgogICAgICAgICRkdXJhdGlvblRleHQgLj0gKCRkdXJhdGlvbiAlIDYwKSAuICcgc2Vjb25kcyc7CgogICAgICAgIHJldHVybiAkZHVyYXRpb25UZXh0OwogICAgfQp9CiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MzU6IlRoaXMgZmlsZSBpcyBwYXJ0IG9mIHBocERvY3VtZW50b3IuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEyMDoiRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0UKZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXExpbmsiOjM6e3M6NzoiACoAbmFtZSI7czo0OiJsaW5rIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7TjtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTGluawBsaW5rIjtzOjE4OiJodHRwczovL3BocGRvYy5vcmciO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czowOiIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjA6e319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG1ldGFkYXRhIjthOjA6e319";