1778692671
441d63ebbc39eba359c9061ece8482bd-phpdoc%3Ae5d0f9aaa390ec7e25c3cbdad26dc476-d3d0c5a51683953b5a375596ecc93eb2
s:44036:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjMwOiJDYWxsYWJsZUFyZ3VtZW50c0V4dHJhY3Rvci5waHAiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjEwOiJcVHdpZ1xVdGlsIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTA6IlxUd2lnXFV0aWwiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0OiJVdGlsIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjE6e3M6Mzc6IlxUd2lnXFV0aWxcQ2FsbGFibGVBcmd1bWVudHNFeHRyYWN0b3IiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxNTp7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGltcGxlbWVudHMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBjb25zdGFudHMiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwcm9wZXJ0aWVzIjthOjM6e3M6NDI6IlxUd2lnXFV0aWxcQ2FsbGFibGVBcmd1bWVudHNFeHRyYWN0b3I6OiRyYyI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6MTQ6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQyOiJcVHdpZ1xVdGlsXENhbGxhYmxlQXJndW1lbnRzRXh0cmFjdG9yOjokcmMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyOiJyYyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtOO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI5OiJcVHdpZ1xVdGlsXFJlZmxlY3Rpb25DYWxsYWJsZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE4OiJSZWZsZWN0aW9uQ2FsbGFibGUiO319czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAcmVhZE9ubHkiO2I6MDtzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBob29rcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlydHVhbCI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBhdHRyaWJ1dGVzIjthOjA6e319czo0NDoiXFR3aWdcVXRpbFxDYWxsYWJsZUFyZ3VtZW50c0V4dHJhY3Rvcjo6JG5vZGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjE0OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozMTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NDoiXFR3aWdcVXRpbFxDYWxsYWJsZUFyZ3VtZW50c0V4dHJhY3Rvcjo6JG5vZGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0OiJub2RlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO047czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTU6IlxUd2lnXE5vZGVcTm9kZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ6Ik5vZGUiO319czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAcmVhZE9ubHkiO2I6MDtzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBob29rcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlydHVhbCI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBhdHRyaWJ1dGVzIjthOjA6e319czo1MjoiXFR3aWdcVXRpbFxDYWxsYWJsZUFyZ3VtZW50c0V4dHJhY3Rvcjo6JHR3aWdDYWxsYWJsZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6MTQ6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozMjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUyOiJcVHdpZ1xVdGlsXENhbGxhYmxlQXJndW1lbnRzRXh0cmFjdG9yOjokdHdpZ0NhbGxhYmxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTI6InR3aWdDYWxsYWJsZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtOO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI3OiJcVHdpZ1xUd2lnQ2FsbGFibGVJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMToiVHdpZ0NhbGxhYmxlSW50ZXJmYWNlIjt9fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHJlYWRPbmx5IjtiOjA7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAaG9va3MiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpcnR1YWwiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBtZXRhZGF0YSI7YTowOnt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAYXR0cmlidXRlcyI7YTowOnt9fX1zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0aG9kcyI7YTo1OntzOjUyOiJcVHdpZ1xVdGlsXENhbGxhYmxlQXJndW1lbnRzRXh0cmFjdG9yOjpfX2NvbnN0cnVjdCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxNToiXFR3aWdcTm9kZVxOb2RlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiTm9kZSI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6Im5vZGUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjc6IlxUd2lnXFR3aWdDYWxsYWJsZUludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjIxOiJUd2lnQ2FsbGFibGVJbnRlcmZhY2UiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxMjoidHdpZ0NhbGxhYmxlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo1OTI7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6NzczO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUyOiJcVHdpZ1xVdGlsXENhbGxhYmxlQXJndW1lbnRzRXh0cmFjdG9yOjpfX2NvbnN0cnVjdCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6Il9fY29uc3RydWN0Ijt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fXM6NTc6IlxUd2lnXFV0aWxcQ2FsbGFibGVBcmd1bWVudHNFeHRyYWN0b3I6OmV4dHJhY3RBcmd1bWVudHMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEzOntzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTU6IlxUd2lnXE5vZGVcTm9kZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ6Ik5vZGUiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo5OiJhcmd1bWVudHMiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjgyMzt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNzI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6ODQ4Nzt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU3OiJcVHdpZ1xVdGlsXENhbGxhYmxlQXJndW1lbnRzRXh0cmFjdG9yOjpleHRyYWN0QXJndW1lbnRzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNjoiZXh0cmFjdEFyZ3VtZW50cyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjE1OiJcVHdpZ1xOb2RlXE5vZGUiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0OiJOb2RlIjt9fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czo5OiJUd2lnXFV0aWwiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjY6e3M6MTE6IlN5bnRheEVycm9yIjtzOjIyOiJUd2lnXEVycm9yXFN5bnRheEVycm9yIjtzOjE1OiJBcnJheUV4cHJlc3Npb24iO3M6MzY6IlR3aWdcTm9kZVxFeHByZXNzaW9uXEFycmF5RXhwcmVzc2lvbiI7czoxODoiQ29uc3RhbnRFeHByZXNzaW9uIjtzOjM5OiJUd2lnXE5vZGVcRXhwcmVzc2lvblxDb25zdGFudEV4cHJlc3Npb24iO3M6MTg6IlZhcmlhZGljRXhwcmVzc2lvbiI7czozOToiVHdpZ1xOb2RlXEV4cHJlc3Npb25cVmFyaWFkaWNFeHByZXNzaW9uIjtzOjQ6Ik5vZGUiO3M6MTQ6IlR3aWdcTm9kZVxOb2RlIjtzOjIxOiJUd2lnQ2FsbGFibGVJbnRlcmZhY2UiO3M6MjY6IlR3aWdcVHdpZ0NhbGxhYmxlSW50ZXJmYWNlIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjU0OiJcVHdpZ1xVdGlsXENhbGxhYmxlQXJndW1lbnRzRXh0cmFjdG9yOjpub3JtYWxpemVOYW1lKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6Im5hbWUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE3NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo4NDk0O31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE3NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo4NjEzO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1NDoiXFR3aWdcVXRpbFxDYWxsYWJsZUFyZ3VtZW50c0V4dHJhY3Rvcjo6bm9ybWFsaXplTmFtZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6Im5vcm1hbGl6ZU5hbWUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fXM6NTI6IlxUd2lnXFV0aWxcQ2FsbGFibGVBcmd1bWVudHNFeHRyYWN0b3I6OnRvU25ha2VDYXNlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6Im5hbWUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE3OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo4NjIwO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE4MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo4Nzg5O31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MjoiXFR3aWdcVXRpbFxDYWxsYWJsZUFyZ3VtZW50c0V4dHJhY3Rvcjo6dG9TbmFrZUNhc2UoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJ0b1NuYWtlQ2FzZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319czo2MjoiXFR3aWdcVXRpbFxDYWxsYWJsZUFyZ3VtZW50c0V4dHJhY3Rvcjo6Z2V0Q2FsbGFibGVQYXJhbWV0ZXJzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxODQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6ODc5Njt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMTg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MTAzMzI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2MjoiXFR3aWdcVXRpbFxDYWxsYWJsZUFyZ3VtZW50c0V4dHJhY3Rvcjo6Z2V0Q2FsbGFibGVQYXJhbWV0ZXJzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMToiZ2V0Q2FsbGFibGVQYXJhbWV0ZXJzIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjc6InByaXZhdGUiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMTk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzc6IlxUd2lnXFV0aWxcQ2FsbGFibGVBcmd1bWVudHNFeHRyYWN0b3IiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNjoiQ2FsbGFibGVBcmd1bWVudHNFeHRyYWN0b3IiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yIjo0OntzOjc6IgAqAG5hbWUiO3M6NjoiYXV0aG9yIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7TjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvck5hbWUiO3M6MTY6IkZhYmllbiBQb3RlbmNpZXIiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MTg6ImZhYmllbkBzeW1mb255LmNvbSI7fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiaW50ZXJuYWwiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjE4MjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwYXJlbnQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjE7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHJlYWRPbmx5IjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYXR0cmlidXRlcyI7YTowOnt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e31zOjQwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGVudW1zIjthOjA6e31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6ImQzZDBjNWE1MTY4Mzk1M2I1YTM3NTU5NmVjYzkzZWIyIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6NTY6InZlbmRvci90d2lnL3R3aWcvc3JjL1V0aWwvQ2FsbGFibGVBcmd1bWVudHNFeHRyYWN0b3IucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czoxMDMzNjoiPD9waHAKCi8qCiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFR3aWcuCiAqCiAqIChjKSBGYWJpZW4gUG90ZW5jaWVyCiAqCiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFCiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLgogKi8KCm5hbWVzcGFjZSBUd2lnXFV0aWw7Cgp1c2UgVHdpZ1xFcnJvclxTeW50YXhFcnJvcjsKdXNlIFR3aWdcTm9kZVxFeHByZXNzaW9uXEFycmF5RXhwcmVzc2lvbjsKdXNlIFR3aWdcTm9kZVxFeHByZXNzaW9uXENvbnN0YW50RXhwcmVzc2lvbjsKdXNlIFR3aWdcTm9kZVxFeHByZXNzaW9uXFZhcmlhZGljRXhwcmVzc2lvbjsKdXNlIFR3aWdcTm9kZVxOb2RlOwp1c2UgVHdpZ1xUd2lnQ2FsbGFibGVJbnRlcmZhY2U7CgovKioKICogQGF1dGhvciBGYWJpZW4gUG90ZW5jaWVyIDxmYWJpZW5Ac3ltZm9ueS5jb20+CiAqCiAqIEBpbnRlcm5hbAogKi8KZmluYWwgY2xhc3MgQ2FsbGFibGVBcmd1bWVudHNFeHRyYWN0b3IKewogICAgcHJpdmF0ZSBSZWZsZWN0aW9uQ2FsbGFibGUgJHJjOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgKICAgICAgICBwcml2YXRlIE5vZGUgJG5vZGUsCiAgICAgICAgcHJpdmF0ZSBUd2lnQ2FsbGFibGVJbnRlcmZhY2UgJHR3aWdDYWxsYWJsZSwKICAgICkgewogICAgICAgICR0aGlzLT5yYyA9IG5ldyBSZWZsZWN0aW9uQ2FsbGFibGUoJHR3aWdDYWxsYWJsZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAcmV0dXJuIGFycmF5PE5vZGU+CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBleHRyYWN0QXJndW1lbnRzKE5vZGUgJGFyZ3VtZW50cyk6IGFycmF5CiAgICB7CiAgICAgICAgJGV4dHJhY3RlZEFyZ3VtZW50cyA9IFtdOwogICAgICAgICRleHRyYWN0ZWRBcmd1bWVudE5hbWVNYXAgPSBbXTsKICAgICAgICAkbmFtZWQgPSBmYWxzZTsKICAgICAgICBmb3JlYWNoICgkYXJndW1lbnRzIGFzICRuYW1lID0+ICRub2RlKSB7CiAgICAgICAgICAgIGlmICghXGlzX2ludCgkbmFtZSkpIHsKICAgICAgICAgICAgICAgICRuYW1lZCA9IHRydWU7CiAgICAgICAgICAgIH0gZWxzZWlmICgkbmFtZWQpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcihcc3ByaW50ZignUG9zaXRpb25hbCBhcmd1bWVudHMgY2Fubm90IGJlIHVzZWQgYWZ0ZXIgbmFtZWQgYXJndW1lbnRzIGZvciAlcyAiJXMiLicsICR0aGlzLT50d2lnQ2FsbGFibGUtPmdldFR5cGUoKSwgJHRoaXMtPnR3aWdDYWxsYWJsZS0+Z2V0TmFtZSgpKSwgJHRoaXMtPm5vZGUtPmdldFRlbXBsYXRlTGluZSgpLCAkdGhpcy0+bm9kZS0+Z2V0U291cmNlQ29udGV4dCgpKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGV4dHJhY3RlZEFyZ3VtZW50c1skbm9ybWFsaXplZE5hbWUgPSAkdGhpcy0+bm9ybWFsaXplTmFtZSgkbmFtZSldID0gJG5vZGU7CiAgICAgICAgICAgICRleHRyYWN0ZWRBcmd1bWVudE5hbWVNYXBbJG5vcm1hbGl6ZWROYW1lXSA9ICRuYW1lOwogICAgICAgIH0KCiAgICAgICAgaWYgKCEkbmFtZWQgJiYgISR0aGlzLT50d2lnQ2FsbGFibGUtPmlzVmFyaWFkaWMoKSkgewogICAgICAgICAgICAkbWluID0gJHRoaXMtPnR3aWdDYWxsYWJsZS0+Z2V0TWluaW1hbE51bWJlck9mUmVxdWlyZWRBcmd1bWVudHMoKTsKICAgICAgICAgICAgaWYgKFxjb3VudCgkZXh0cmFjdGVkQXJndW1lbnRzKSA8ICR0aGlzLT5yYy0+Z2V0UmVmbGVjdG9yKCktPmdldE51bWJlck9mUmVxdWlyZWRQYXJhbWV0ZXJzKCkgLSAkbWluKSB7CiAgICAgICAgICAgICAgICAkYXJnTmFtZSA9ICR0aGlzLT50b1NuYWtlQ2FzZSgkdGhpcy0+cmMtPmdldFJlZmxlY3RvcigpLT5nZXRQYXJhbWV0ZXJzKClbJG1pbiArIFxjb3VudCgkZXh0cmFjdGVkQXJndW1lbnRzKV0tPmdldE5hbWUoKSk7CgogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKFxzcHJpbnRmKCdWYWx1ZSBmb3IgYXJndW1lbnQgIiVzIiBpcyByZXF1aXJlZCBmb3IgJXMgIiVzIi4nLCAkYXJnTmFtZSwgJHRoaXMtPnR3aWdDYWxsYWJsZS0+Z2V0VHlwZSgpLCAkdGhpcy0+dHdpZ0NhbGxhYmxlLT5nZXROYW1lKCkpLCAkdGhpcy0+bm9kZS0+Z2V0VGVtcGxhdGVMaW5lKCksICR0aGlzLT5ub2RlLT5nZXRTb3VyY2VDb250ZXh0KCkpOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gJGV4dHJhY3RlZEFyZ3VtZW50czsKICAgICAgICB9CgogICAgICAgIGlmICghJGNhbGxhYmxlID0gJHRoaXMtPnR3aWdDYWxsYWJsZS0+Z2V0Q2FsbGFibGUoKSkgewogICAgICAgICAgICBpZiAoJG5hbWVkKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoXHNwcmludGYoJ05hbWVkIGFyZ3VtZW50cyBhcmUgbm90IHN1cHBvcnRlZCBmb3IgJXMgIiVzIi4nLCAkdGhpcy0+dHdpZ0NhbGxhYmxlLT5nZXRUeXBlKCksICR0aGlzLT50d2lnQ2FsbGFibGUtPmdldE5hbWUoKSkpOwogICAgICAgICAgICB9CgogICAgICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoXHNwcmludGYoJ0FyYml0cmFyeSBwb3NpdGlvbmFsIGFyZ3VtZW50cyBhcmUgbm90IHN1cHBvcnRlZCBmb3IgJXMgIiVzIi4nLCAkdGhpcy0+dHdpZ0NhbGxhYmxlLT5nZXRUeXBlKCksICR0aGlzLT50d2lnQ2FsbGFibGUtPmdldE5hbWUoKSkpOwogICAgICAgIH0KCiAgICAgICAgWyRjYWxsYWJsZVBhcmFtZXRlcnMsICRpc1BocFZhcmlhZGljXSA9ICR0aGlzLT5nZXRDYWxsYWJsZVBhcmFtZXRlcnMoKTsKICAgICAgICAkYXJndW1lbnRzID0gW107CiAgICAgICAgJGNhbGxhYmxlUGFyYW1ldGVyTmFtZXMgPSBbXTsKICAgICAgICAkbWlzc2luZ0FyZ3VtZW50cyA9IFtdOwogICAgICAgICRvcHRpb25hbEFyZ3VtZW50cyA9IFtdOwogICAgICAgICRwb3MgPSAwOwogICAgICAgIGZvcmVhY2ggKCRjYWxsYWJsZVBhcmFtZXRlcnMgYXMgJGNhbGxhYmxlUGFyYW1ldGVyKSB7CiAgICAgICAgICAgICRjYWxsYWJsZVBhcmFtZXRlck5hbWUgPSAkY2FsbGFibGVQYXJhbWV0ZXItPm5hbWU7CiAgICAgICAgICAgIGlmIChcUEhQX1ZFUlNJT05fSUQgPj0gODAwMDAgJiYgJ3JhbmdlJyA9PT0gJGNhbGxhYmxlKSB7CiAgICAgICAgICAgICAgICBpZiAoJ3N0YXJ0JyA9PT0gJGNhbGxhYmxlUGFyYW1ldGVyTmFtZSkgewogICAgICAgICAgICAgICAgICAgICRjYWxsYWJsZVBhcmFtZXRlck5hbWUgPSAnbG93JzsKICAgICAgICAgICAgICAgIH0gZWxzZWlmICgnZW5kJyA9PT0gJGNhbGxhYmxlUGFyYW1ldGVyTmFtZSkgewogICAgICAgICAgICAgICAgICAgICRjYWxsYWJsZVBhcmFtZXRlck5hbWUgPSAnaGlnaCc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRjYWxsYWJsZVBhcmFtZXRlck5hbWVzW10gPSAkY2FsbGFibGVQYXJhbWV0ZXJOYW1lOwogICAgICAgICAgICAkbm9ybWFsaXplZENhbGxhYmxlUGFyYW1ldGVyTmFtZSA9ICR0aGlzLT5ub3JtYWxpemVOYW1lKCRjYWxsYWJsZVBhcmFtZXRlck5hbWUpOwoKICAgICAgICAgICAgaWYgKFxhcnJheV9rZXlfZXhpc3RzKCRub3JtYWxpemVkQ2FsbGFibGVQYXJhbWV0ZXJOYW1lLCAkZXh0cmFjdGVkQXJndW1lbnRzKSkgewogICAgICAgICAgICAgICAgaWYgKFxhcnJheV9rZXlfZXhpc3RzKCRwb3MsICRleHRyYWN0ZWRBcmd1bWVudHMpKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKFxzcHJpbnRmKCdBcmd1bWVudCAiJXMiIGlzIGRlZmluZWQgdHdpY2UgZm9yICVzICIlcyIuJywgJGNhbGxhYmxlUGFyYW1ldGVyTmFtZSwgJHRoaXMtPnR3aWdDYWxsYWJsZS0+Z2V0VHlwZSgpLCAkdGhpcy0+dHdpZ0NhbGxhYmxlLT5nZXROYW1lKCkpLCAkdGhpcy0+bm9kZS0+Z2V0VGVtcGxhdGVMaW5lKCksICR0aGlzLT5ub2RlLT5nZXRTb3VyY2VDb250ZXh0KCkpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChcY291bnQoJG1pc3NpbmdBcmd1bWVudHMpKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKFxzcHJpbnRmKAogICAgICAgICAgICAgICAgICAgICAgICAnQXJndW1lbnQgIiVzIiBjb3VsZCBub3QgYmUgYXNzaWduZWQgZm9yICVzICIlcyglcykiIGJlY2F1c2UgaXQgaXMgbWFwcGVkIHRvIGFuIGludGVybmFsIFBIUCBmdW5jdGlvbiB3aGljaCBjYW5ub3QgZGV0ZXJtaW5lIGRlZmF1bHQgdmFsdWUgZm9yIG9wdGlvbmFsIGFyZ3VtZW50JXMgIiVzIi4nLAogICAgICAgICAgICAgICAgICAgICAgICAkY2FsbGFibGVQYXJhbWV0ZXJOYW1lLCAkdGhpcy0+dHdpZ0NhbGxhYmxlLT5nZXRUeXBlKCksICR0aGlzLT50d2lnQ2FsbGFibGUtPmdldE5hbWUoKSwgaW1wbG9kZSgnLCAnLCBhcnJheV9tYXAoWyR0aGlzLCAndG9TbmFrZUNhc2UnXSwgJGNhbGxhYmxlUGFyYW1ldGVyTmFtZXMpKSwgXGNvdW50KCRtaXNzaW5nQXJndW1lbnRzKSA+IDEgPyAncycgOiAnJywgaW1wbG9kZSgnIiwgIicsICRtaXNzaW5nQXJndW1lbnRzKQogICAgICAgICAgICAgICAgICAgICksICR0aGlzLT5ub2RlLT5nZXRUZW1wbGF0ZUxpbmUoKSwgJHRoaXMtPm5vZGUtPmdldFNvdXJjZUNvbnRleHQoKSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJGFyZ3VtZW50cyA9IGFycmF5X21lcmdlKCRhcmd1bWVudHMsICRvcHRpb25hbEFyZ3VtZW50cyk7CiAgICAgICAgICAgICAgICAkYXJndW1lbnRzW10gPSAkZXh0cmFjdGVkQXJndW1lbnRzWyRub3JtYWxpemVkQ2FsbGFibGVQYXJhbWV0ZXJOYW1lXTsKICAgICAgICAgICAgICAgIHVuc2V0KCRleHRyYWN0ZWRBcmd1bWVudHNbJG5vcm1hbGl6ZWRDYWxsYWJsZVBhcmFtZXRlck5hbWVdKTsKICAgICAgICAgICAgICAgICRvcHRpb25hbEFyZ3VtZW50cyA9IFtdOwogICAgICAgICAgICB9IGVsc2VpZiAoXGFycmF5X2tleV9leGlzdHMoJHBvcywgJGV4dHJhY3RlZEFyZ3VtZW50cykpIHsKICAgICAgICAgICAgICAgICRhcmd1bWVudHMgPSBhcnJheV9tZXJnZSgkYXJndW1lbnRzLCAkb3B0aW9uYWxBcmd1bWVudHMpOwogICAgICAgICAgICAgICAgJGFyZ3VtZW50c1tdID0gJGV4dHJhY3RlZEFyZ3VtZW50c1skcG9zXTsKICAgICAgICAgICAgICAgIHVuc2V0KCRleHRyYWN0ZWRBcmd1bWVudHNbJHBvc10pOwogICAgICAgICAgICAgICAgJG9wdGlvbmFsQXJndW1lbnRzID0gW107CiAgICAgICAgICAgICAgICArKyRwb3M7CiAgICAgICAgICAgIH0gZWxzZWlmICgkY2FsbGFibGVQYXJhbWV0ZXItPmlzRGVmYXVsdFZhbHVlQXZhaWxhYmxlKCkpIHsKICAgICAgICAgICAgICAgICRvcHRpb25hbEFyZ3VtZW50c1tdID0gbmV3IENvbnN0YW50RXhwcmVzc2lvbigkY2FsbGFibGVQYXJhbWV0ZXItPmdldERlZmF1bHRWYWx1ZSgpLCAkdGhpcy0+bm9kZS0+Z2V0VGVtcGxhdGVMaW5lKCkpOwogICAgICAgICAgICB9IGVsc2VpZiAoJGNhbGxhYmxlUGFyYW1ldGVyLT5pc09wdGlvbmFsKCkpIHsKICAgICAgICAgICAgICAgIGlmICghJGV4dHJhY3RlZEFyZ3VtZW50cykgewogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRtaXNzaW5nQXJndW1lbnRzW10gPSAkY2FsbGFibGVQYXJhbWV0ZXJOYW1lOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKFxzcHJpbnRmKCdWYWx1ZSBmb3IgYXJndW1lbnQgIiVzIiBpcyByZXF1aXJlZCBmb3IgJXMgIiVzIi4nLCAkdGhpcy0+dG9TbmFrZUNhc2UoJGNhbGxhYmxlUGFyYW1ldGVyTmFtZSksICR0aGlzLT50d2lnQ2FsbGFibGUtPmdldFR5cGUoKSwgJHRoaXMtPnR3aWdDYWxsYWJsZS0+Z2V0TmFtZSgpKSwgJHRoaXMtPm5vZGUtPmdldFRlbXBsYXRlTGluZSgpLCAkdGhpcy0+bm9kZS0+Z2V0U291cmNlQ29udGV4dCgpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCR0aGlzLT50d2lnQ2FsbGFibGUtPmlzVmFyaWFkaWMoKSkgewogICAgICAgICAgICAkYXJiaXRyYXJ5QXJndW1lbnRzID0gJGlzUGhwVmFyaWFkaWMgPyBuZXcgVmFyaWFkaWNFeHByZXNzaW9uKFtdLCAkdGhpcy0+bm9kZS0+Z2V0VGVtcGxhdGVMaW5lKCkpIDogbmV3IEFycmF5RXhwcmVzc2lvbihbXSwgJHRoaXMtPm5vZGUtPmdldFRlbXBsYXRlTGluZSgpKTsKICAgICAgICAgICAgZm9yZWFjaCAoJGV4dHJhY3RlZEFyZ3VtZW50cyBhcyAka2V5ID0+ICR2YWx1ZSkgewogICAgICAgICAgICAgICAgaWYgKFxpc19pbnQoJGtleSkpIHsKICAgICAgICAgICAgICAgICAgICAkYXJiaXRyYXJ5QXJndW1lbnRzLT5hZGRFbGVtZW50KCR2YWx1ZSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRvcmlnaW5hbEtleSA9ICRleHRyYWN0ZWRBcmd1bWVudE5hbWVNYXBbJGtleV07CiAgICAgICAgICAgICAgICAgICAgaWYgKCRvcmlnaW5hbEtleSAhPT0gJHRoaXMtPnRvU25ha2VDYXNlKCRvcmlnaW5hbEtleSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcl9kZXByZWNhdGlvbigndHdpZy90d2lnJywgJzMuMTUnLCBcc3ByaW50ZignVXNpbmcgInNuYWtlX2Nhc2UiIGZvciB2YXJpYWRpYyBhcmd1bWVudHMgaXMgcmVxdWlyZWQgZm9yIGEgc21vb3RoIHVwZ3JhZGUgd2l0aCBUd2lnIDQuMDsgcmVuYW1lICIlcyIgdG8gIiVzIiBpbiAiJXMiIGF0IGxpbmUgJWQuJywgJG9yaWdpbmFsS2V5LCAkdGhpcy0+dG9TbmFrZUNhc2UoJG9yaWdpbmFsS2V5KSwgJHRoaXMtPm5vZGUtPmdldFNvdXJjZUNvbnRleHQoKS0+Z2V0TmFtZSgpLCAkdGhpcy0+bm9kZS0+Z2V0VGVtcGxhdGVMaW5lKCkpKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJGFyYml0cmFyeUFyZ3VtZW50cy0+YWRkRWxlbWVudCgkdmFsdWUsIG5ldyBDb25zdGFudEV4cHJlc3Npb24oJHRoaXMtPnRvU25ha2VDYXNlKCRvcmlnaW5hbEtleSksICR0aGlzLT5ub2RlLT5nZXRUZW1wbGF0ZUxpbmUoKSkpOwogICAgICAgICAgICAgICAgICAgIC8vIEkgVHdpZyA0LjAsIGRvbid0IGNvbnZlcnQgdGhlIGtleToKICAgICAgICAgICAgICAgICAgICAvLyAkYXJiaXRyYXJ5QXJndW1lbnRzLT5hZGRFbGVtZW50KCR2YWx1ZSwgbmV3IENvbnN0YW50RXhwcmVzc2lvbigkb3JpZ2luYWxLZXksICR0aGlzLT5ub2RlLT5nZXRUZW1wbGF0ZUxpbmUoKSkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdW5zZXQoJGV4dHJhY3RlZEFyZ3VtZW50c1ska2V5XSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgkYXJiaXRyYXJ5QXJndW1lbnRzLT5jb3VudCgpKSB7CiAgICAgICAgICAgICAgICAkYXJndW1lbnRzID0gYXJyYXlfbWVyZ2UoJGFyZ3VtZW50cywgJG9wdGlvbmFsQXJndW1lbnRzKTsKICAgICAgICAgICAgICAgICRhcmd1bWVudHNbXSA9ICRhcmJpdHJhcnlBcmd1bWVudHM7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICgkZXh0cmFjdGVkQXJndW1lbnRzKSB7CiAgICAgICAgICAgICR1bmtub3duQXJndW1lbnQgPSBudWxsOwogICAgICAgICAgICBmb3JlYWNoICgkZXh0cmFjdGVkQXJndW1lbnRzIGFzICRleHRyYWN0ZWRBcmd1bWVudCkgewogICAgICAgICAgICAgICAgaWYgKCRleHRyYWN0ZWRBcmd1bWVudCBpbnN0YW5jZW9mIE5vZGUpIHsKICAgICAgICAgICAgICAgICAgICAkdW5rbm93bkFyZ3VtZW50ID0gJGV4dHJhY3RlZEFyZ3VtZW50OwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoCiAgICAgICAgICAgICAgICBcc3ByaW50ZigKICAgICAgICAgICAgICAgICAgICAnVW5rbm93biBhcmd1bWVudCVzICIlcyIgZm9yICVzICIlcyglcykiLicsCiAgICAgICAgICAgICAgICAgICAgXGNvdW50KCRleHRyYWN0ZWRBcmd1bWVudHMpID4gMSA/ICdzJyA6ICcnLCBpbXBsb2RlKCciLCAiJywgYXJyYXlfa2V5cygkZXh0cmFjdGVkQXJndW1lbnRzKSksICR0aGlzLT50d2lnQ2FsbGFibGUtPmdldFR5cGUoKSwgJHRoaXMtPnR3aWdDYWxsYWJsZS0+Z2V0TmFtZSgpLCBpbXBsb2RlKCcsICcsIGFycmF5X21hcChbJHRoaXMsICd0b1NuYWtlQ2FzZSddLCAkY2FsbGFibGVQYXJhbWV0ZXJOYW1lcykpCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgJHVua25vd25Bcmd1bWVudCA/ICR1bmtub3duQXJndW1lbnQtPmdldFRlbXBsYXRlTGluZSgpIDogJHRoaXMtPm5vZGUtPmdldFRlbXBsYXRlTGluZSgpLAogICAgICAgICAgICAgICAgJHVua25vd25Bcmd1bWVudCA/ICR1bmtub3duQXJndW1lbnQtPmdldFNvdXJjZUNvbnRleHQoKSA6ICR0aGlzLT5ub2RlLT5nZXRTb3VyY2VDb250ZXh0KCkKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkYXJndW1lbnRzOwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gbm9ybWFsaXplTmFtZShzdHJpbmcgJG5hbWUpOiBzdHJpbmcKICAgIHsKICAgICAgICByZXR1cm4gc3RydG9sb3dlcihzdHJfcmVwbGFjZSgnXycsICcnLCAkbmFtZSkpOwogICAgfQoKICAgIHByaXZhdGUgZnVuY3Rpb24gdG9TbmFrZUNhc2Uoc3RyaW5nICRuYW1lKTogc3RyaW5nCiAgICB7CiAgICAgICAgcmV0dXJuIHN0cnRvbG93ZXIocHJlZ19yZXBsYWNlKFsnLyhbQS1aXSspKFtBLVpdW2Etel0pLycsICcvKFthLXowLTldKShbQS1aXSkvJ10sICdcMV9cMicsICRuYW1lKSk7CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBnZXRDYWxsYWJsZVBhcmFtZXRlcnMoKTogYXJyYXkKICAgIHsKICAgICAgICAkcGFyYW1ldGVycyA9ICR0aGlzLT5yYy0+Z2V0UmVmbGVjdG9yKCktPmdldFBhcmFtZXRlcnMoKTsKICAgICAgICBpZiAoJHRoaXMtPm5vZGUtPmhhc05vZGUoJ25vZGUnKSkgewogICAgICAgICAgICBhcnJheV9zaGlmdCgkcGFyYW1ldGVycyk7CiAgICAgICAgfQogICAgICAgIGlmICgkdGhpcy0+dHdpZ0NhbGxhYmxlLT5uZWVkc0NoYXJzZXQoKSkgewogICAgICAgICAgICBhcnJheV9zaGlmdCgkcGFyYW1ldGVycyk7CiAgICAgICAgfQogICAgICAgIGlmICgkdGhpcy0+dHdpZ0NhbGxhYmxlLT5uZWVkc0Vudmlyb25tZW50KCkpIHsKICAgICAgICAgICAgYXJyYXlfc2hpZnQoJHBhcmFtZXRlcnMpOwogICAgICAgIH0KICAgICAgICBpZiAoJHRoaXMtPnR3aWdDYWxsYWJsZS0+bmVlZHNDb250ZXh0KCkpIHsKICAgICAgICAgICAgYXJyYXlfc2hpZnQoJHBhcmFtZXRlcnMpOwogICAgICAgIH0KICAgICAgICBmb3JlYWNoICgkdGhpcy0+dHdpZ0NhbGxhYmxlLT5nZXRBcmd1bWVudHMoKSBhcyAkYXJndW1lbnQpIHsKICAgICAgICAgICAgYXJyYXlfc2hpZnQoJHBhcmFtZXRlcnMpOwogICAgICAgIH0KCiAgICAgICAgJGlzUGhwVmFyaWFkaWMgPSBmYWxzZTsKICAgICAgICBpZiAoJHRoaXMtPnR3aWdDYWxsYWJsZS0+aXNWYXJpYWRpYygpKSB7CiAgICAgICAgICAgICRhcmd1bWVudCA9IGVuZCgkcGFyYW1ldGVycyk7CiAgICAgICAgICAgICRpc0FycmF5ID0gJGFyZ3VtZW50ICYmICRhcmd1bWVudC0+aGFzVHlwZSgpICYmICRhcmd1bWVudC0+Z2V0VHlwZSgpIGluc3RhbmNlb2YgXFJlZmxlY3Rpb25OYW1lZFR5cGUgJiYgJ2FycmF5JyA9PT0gJGFyZ3VtZW50LT5nZXRUeXBlKCktPmdldE5hbWUoKTsKICAgICAgICAgICAgaWYgKCRpc0FycmF5ICYmICRhcmd1bWVudC0+aXNEZWZhdWx0VmFsdWVBdmFpbGFibGUoKSAmJiBbXSA9PT0gJGFyZ3VtZW50LT5nZXREZWZhdWx0VmFsdWUoKSkgewogICAgICAgICAgICAgICAgYXJyYXlfcG9wKCRwYXJhbWV0ZXJzKTsKICAgICAgICAgICAgfSBlbHNlaWYgKCRhcmd1bWVudCAmJiAkYXJndW1lbnQtPmlzVmFyaWFkaWMoKSkgewogICAgICAgICAgICAgICAgYXJyYXlfcG9wKCRwYXJhbWV0ZXJzKTsKICAgICAgICAgICAgICAgICRpc1BocFZhcmlhZGljID0gdHJ1ZTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcihcc3ByaW50ZignVGhlIGxhc3QgcGFyYW1ldGVyIG9mICIlcyIgZm9yICVzICIlcyIgbXVzdCBiZSBhbiBhcnJheSB3aXRoIGRlZmF1bHQgdmFsdWUsIGVnLiAiYXJyYXkgJGFyZyA9IFtdIi4nLCAkdGhpcy0+cmMtPmdldE5hbWUoKSwgJHRoaXMtPnR3aWdDYWxsYWJsZS0+Z2V0VHlwZSgpLCAkdGhpcy0+dHdpZ0NhbGxhYmxlLT5nZXROYW1lKCkpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIFskcGFyYW1ldGVycywgJGlzUGhwVmFyaWFkaWNdOwogICAgfQp9CiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG1ldGFkYXRhIjthOjA6e319";