1778692621
441d63ebbc39eba359c9061ece8482bd-phpdoc%3A28bf35fc1b3e0ac2bf5cf739936fefe3-f01a764704f6d7af53be98b8ef51697a
s:36484:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjIxOiJDc3ZUYWJsZURpcmVjdGl2ZS5waHAiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjQ5OiJccGhwRG9jdW1lbnRvclxHdWlkZXNcUmVzdHJ1Y3R1cmVkVGV4dFxEaXJlY3RpdmVzIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDk6IlxwaHBEb2N1bWVudG9yXEd1aWRlc1xSZXN0cnVjdHVyZWRUZXh0XERpcmVjdGl2ZXMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiRGlyZWN0aXZlcyI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YToxOntzOjY3OiJccGhwRG9jdW1lbnRvclxHdWlkZXNcUmVzdHJ1Y3R1cmVkVGV4dFxEaXJlY3RpdmVzXENzdlRhYmxlRGlyZWN0aXZlIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTU6e3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YToyOntzOjgxOiJccGhwRG9jdW1lbnRvclxHdWlkZXNcUmVzdHJ1Y3R1cmVkVGV4dFxEaXJlY3RpdmVzXENzdlRhYmxlRGlyZWN0aXZlOjokcHJvZHVjdGlvbnMiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjE0OntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo4MToiXHBocERvY3VtZW50b3JcR3VpZGVzXFJlc3RydWN0dXJlZFRleHRcRGlyZWN0aXZlc1xDc3ZUYWJsZURpcmVjdGl2ZTo6JHByb2R1Y3Rpb25zIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6InByb2R1Y3Rpb25zIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO047czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NzE6IlxwaHBEb2N1bWVudG9yXEd1aWRlc1xSZXN0cnVjdHVyZWRUZXh0XFBhcnNlclxQcm9kdWN0aW9uc1xSdWxlQ29udGFpbmVyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6IlJ1bGVDb250YWluZXIiO319czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAcmVhZE9ubHkiO2I6MDtzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBob29rcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlydHVhbCI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBhdHRyaWJ1dGVzIjthOjA6e319czo3NjoiXHBocERvY3VtZW50b3JcR3VpZGVzXFJlc3RydWN0dXJlZFRleHRcRGlyZWN0aXZlc1xDc3ZUYWJsZURpcmVjdGl2ZTo6JGxvZ2dlciI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6MTQ6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjUxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjc2OiJccGhwRG9jdW1lbnRvclxHdWlkZXNcUmVzdHJ1Y3R1cmVkVGV4dFxEaXJlY3RpdmVzXENzdlRhYmxlRGlyZWN0aXZlOjokbG9nZ2VyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NjoibG9nZ2VyIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZG9jQmxvY2siO047czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjQ6IlxQc3JcTG9nXExvZ2dlckludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJMb2dnZXJJbnRlcmZhY2UiO319czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAcmVhZE9ubHkiO2I6MDtzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBob29rcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlydHVhbCI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e31zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBhdHRyaWJ1dGVzIjthOjA6e319fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjQ6e3M6ODI6IlxwaHBEb2N1bWVudG9yXEd1aWRlc1xSZXN0cnVjdHVyZWRUZXh0XERpcmVjdGl2ZXNcQ3N2VGFibGVEaXJlY3RpdmU6Ol9fY29uc3RydWN0KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjcxOiJccGhwRG9jdW1lbnRvclxHdWlkZXNcUmVzdHJ1Y3R1cmVkVGV4dFxQYXJzZXJcUHJvZHVjdGlvbnNcUnVsZUNvbnRhaW5lciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEzOiJSdWxlQ29udGFpbmVyIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MTE6InByb2R1Y3Rpb25zIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI0OiJcUHNyXExvZ1xMb2dnZXJJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiTG9nZ2VySW50ZXJmYWNlIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NjoibG9nZ2VyIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToxMjU1O31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjUzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjEzODE7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6ODI6IlxwaHBEb2N1bWVudG9yXEd1aWRlc1xSZXN0cnVjdHVyZWRUZXh0XERpcmVjdGl2ZXNcQ3N2VGFibGVEaXJlY3RpdmU6Ol9fY29uc3RydWN0KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiX19jb25zdHJ1Y3QiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319czo3ODoiXHBocERvY3VtZW50b3JcR3VpZGVzXFJlc3RydWN0dXJlZFRleHRcRGlyZWN0aXZlc1xDc3ZUYWJsZURpcmVjdGl2ZTo6Z2V0TmFtZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MTM4ODt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1ODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToxNDYwO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3ODoiXHBocERvY3VtZW50b3JcR3VpZGVzXFJlc3RydWN0dXJlZFRleHRcRGlyZWN0aXZlc1xDc3ZUYWJsZURpcmVjdGl2ZTo6Z2V0TmFtZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoiZ2V0TmFtZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjgyOiJccGhwRG9jdW1lbnRvclxHdWlkZXNcUmVzdHJ1Y3R1cmVkVGV4dFxEaXJlY3RpdmVzXENzdlRhYmxlRGlyZWN0aXZlOjpwcm9jZXNzTm9kZSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1ODoiXHBocERvY3VtZW50b3JcR3VpZGVzXFJlc3RydWN0dXJlZFRleHRcUGFyc2VyXEJsb2NrQ29udGV4dCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEyOiJCbG9ja0NvbnRleHQiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxMjoiYmxvY2tDb250ZXh0IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU1OiJccGhwRG9jdW1lbnRvclxHdWlkZXNcUmVzdHJ1Y3R1cmVkVGV4dFxQYXJzZXJcRGlyZWN0aXZlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiRGlyZWN0aXZlIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6OToiZGlyZWN0aXZlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToxNDkyO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEzMTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo0NDQ3O31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMyOiJccGhwRG9jdW1lbnRvclxHdWlkZXNcTm9kZXNcTm9kZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ6Ik5vZGUiO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6ODI6IlxwaHBEb2N1bWVudG9yXEd1aWRlc1xSZXN0cnVjdHVyZWRUZXh0XERpcmVjdGl2ZXNcQ3N2VGFibGVEaXJlY3RpdmU6OnByb2Nlc3NOb2RlKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToicHJvY2Vzc05vZGUiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoxMzoie0Bpbmhlcml0RG9jfSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czo0ODoicGhwRG9jdW1lbnRvclxHdWlkZXNcUmVzdHJ1Y3R1cmVkVGV4dFxEaXJlY3RpdmVzIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YToxMTp7czo2OiJSZWFkZXIiO3M6MTc6IkxlYWd1ZVxDc3ZcUmVhZGVyIjtzOjExOiJHZW5lcmljTm9kZSI7czozODoicGhwRG9jdW1lbnRvclxHdWlkZXNcTm9kZXNcR2VuZXJpY05vZGUiO3M6NDoiTm9kZSI7czozMToicGhwRG9jdW1lbnRvclxHdWlkZXNcTm9kZXNcTm9kZSI7czoxMzoiUGFyYWdyYXBoTm9kZSI7czo0MDoicGhwRG9jdW1lbnRvclxHdWlkZXNcTm9kZXNcUGFyYWdyYXBoTm9kZSI7czoxMToiVGFibGVDb2x1bW4iO3M6NDQ6InBocERvY3VtZW50b3JcR3VpZGVzXE5vZGVzXFRhYmxlXFRhYmxlQ29sdW1uIjtzOjg6IlRhYmxlUm93IjtzOjQxOiJwaHBEb2N1bWVudG9yXEd1aWRlc1xOb2Rlc1xUYWJsZVxUYWJsZVJvdyI7czo5OiJUYWJsZU5vZGUiO3M6MzY6InBocERvY3VtZW50b3JcR3VpZGVzXE5vZGVzXFRhYmxlTm9kZSI7czoxMjoiQmxvY2tDb250ZXh0IjtzOjU3OiJwaHBEb2N1bWVudG9yXEd1aWRlc1xSZXN0cnVjdHVyZWRUZXh0XFBhcnNlclxCbG9ja0NvbnRleHQiO3M6OToiRGlyZWN0aXZlIjtzOjU0OiJwaHBEb2N1bWVudG9yXEd1aWRlc1xSZXN0cnVjdHVyZWRUZXh0XFBhcnNlclxEaXJlY3RpdmUiO3M6MTM6IlJ1bGVDb250YWluZXIiO3M6NzA6InBocERvY3VtZW50b3JcR3VpZGVzXFJlc3RydWN0dXJlZFRleHRcUGFyc2VyXFByb2R1Y3Rpb25zXFJ1bGVDb250YWluZXIiO3M6MTU6IkxvZ2dlckludGVyZmFjZSI7czoyMzoiUHNyXExvZ1xMb2dnZXJJbnRlcmZhY2UiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fXM6ODI6IlxwaHBEb2N1bWVudG9yXEd1aWRlc1xSZXN0cnVjdHVyZWRUZXh0XERpcmVjdGl2ZXNcQ3N2VGFibGVEaXJlY3RpdmU6OmJ1aWxkQ29sdW1uKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTozOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ1OiJccGhwRG9jdW1lbnRvclxHdWlkZXNcTm9kZXNcVGFibGVcVGFibGVDb2x1bW4iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiVGFibGVDb2x1bW4iO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czozOiJjb2wiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTg6IlxwaHBEb2N1bWVudG9yXEd1aWRlc1xSZXN0cnVjdHVyZWRUZXh0XFBhcnNlclxCbG9ja0NvbnRleHQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMjoiQmxvY2tDb250ZXh0Ijt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MTI6ImJsb2NrQ29udGV4dCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToyO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3MToiXHBocERvY3VtZW50b3JcR3VpZGVzXFJlc3RydWN0dXJlZFRleHRcUGFyc2VyXFByb2R1Y3Rpb25zXFJ1bGVDb250YWluZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMzoiUnVsZUNvbnRhaW5lciI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjExOiJwcm9kdWN0aW9ucyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTMzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjQ0NTQ7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTU2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjUzNDM7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDU6IlxwaHBEb2N1bWVudG9yXEd1aWRlc1xOb2Rlc1xUYWJsZVxUYWJsZUNvbHVtbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJUYWJsZUNvbHVtbiI7fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo4MjoiXHBocERvY3VtZW50b3JcR3VpZGVzXFJlc3RydWN0dXJlZFRleHRcRGlyZWN0aXZlc1xDc3ZUYWJsZURpcmVjdGl2ZTo6YnVpbGRDb2x1bW4oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJidWlsZENvbHVtbiI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo3OiJwcml2YXRlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTU3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY3OiJccGhwRG9jdW1lbnRvclxHdWlkZXNcUmVzdHJ1Y3R1cmVkVGV4dFxEaXJlY3RpdmVzXENzdlRhYmxlRGlyZWN0aXZlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTc6IkNzdlRhYmxlRGlyZWN0aXZlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoyNDoiUmVuZGVyIGNzdiBmaWxlIGFzIHRhYmxlIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjg4OiIuLiBjc3YtdGFibGU6OiBUYWJsZSBUaXRsZQo6ZmlsZTogQ1NWIGZpbGUgcGF0aCBhbmQgbmFtZQo6d2lkdGhzOiAzMCwgNzAKOmhlYWRlci1yb3dzOiAxIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjoxNjc7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcGFyZW50IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjM6IlxwaHBEb2N1bWVudG9yXEd1aWRlc1xSZXN0cnVjdHVyZWRUZXh0XERpcmVjdGl2ZXNcQmFzZURpcmVjdGl2ZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEzOiJCYXNlRGlyZWN0aXZlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjE7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHJlYWRPbmx5IjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYXR0cmlidXRlcyI7YTowOnt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e31zOjQwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGVudW1zIjthOjA6e31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6ImYwMWE3NjQ3MDRmNmQ3YWY1M2JlOThiOGVmNTE2OTdhIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6OTk6InZlbmRvci9waHBkb2N1bWVudG9yL2d1aWRlcy1yZXN0cnVjdHVyZWQtdGV4dC9zcmMvUmVzdHJ1Y3R1cmVkVGV4dC9EaXJlY3RpdmVzL0NzdlRhYmxlRGlyZWN0aXZlLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6NTM0NzoiPD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKLyoqCiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHBocERvY3VtZW50b3IuCiAqCiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFCiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLgogKgogKiBAbGluayBodHRwczovL3BocGRvYy5vcmcKICovCgpuYW1lc3BhY2UgcGhwRG9jdW1lbnRvclxHdWlkZXNcUmVzdHJ1Y3R1cmVkVGV4dFxEaXJlY3RpdmVzOwoKdXNlIExlYWd1ZVxDc3ZcUmVhZGVyOwp1c2UgcGhwRG9jdW1lbnRvclxHdWlkZXNcTm9kZXNcR2VuZXJpY05vZGU7CnVzZSBwaHBEb2N1bWVudG9yXEd1aWRlc1xOb2Rlc1xOb2RlOwp1c2UgcGhwRG9jdW1lbnRvclxHdWlkZXNcTm9kZXNcUGFyYWdyYXBoTm9kZTsKdXNlIHBocERvY3VtZW50b3JcR3VpZGVzXE5vZGVzXFRhYmxlXFRhYmxlQ29sdW1uOwp1c2UgcGhwRG9jdW1lbnRvclxHdWlkZXNcTm9kZXNcVGFibGVcVGFibGVSb3c7CnVzZSBwaHBEb2N1bWVudG9yXEd1aWRlc1xOb2Rlc1xUYWJsZU5vZGU7CnVzZSBwaHBEb2N1bWVudG9yXEd1aWRlc1xSZXN0cnVjdHVyZWRUZXh0XFBhcnNlclxCbG9ja0NvbnRleHQ7CnVzZSBwaHBEb2N1bWVudG9yXEd1aWRlc1xSZXN0cnVjdHVyZWRUZXh0XFBhcnNlclxEaXJlY3RpdmU7CnVzZSBwaHBEb2N1bWVudG9yXEd1aWRlc1xSZXN0cnVjdHVyZWRUZXh0XFBhcnNlclxQcm9kdWN0aW9uc1xSdWxlQ29udGFpbmVyOwp1c2UgUHNyXExvZ1xMb2dnZXJJbnRlcmZhY2U7Cgp1c2UgZnVuY3Rpb24gYXJyYXlfZmlsdGVyOwp1c2UgZnVuY3Rpb24gYXJyYXlfbWFwOwp1c2UgZnVuY3Rpb24gYXJyYXlfbWVyZ2U7CnVzZSBmdW5jdGlvbiBhc3NlcnQ7CnVzZSBmdW5jdGlvbiBjb3VudDsKdXNlIGZ1bmN0aW9uIGV4cGxvZGU7CnVzZSBmdW5jdGlvbiBpbXBsb2RlOwp1c2UgZnVuY3Rpb24gaXNfc3RyaW5nOwp1c2UgZnVuY3Rpb24gc3RydmFsOwp1c2UgZnVuY3Rpb24gdHJpbTsKCi8qKgogKiBSZW5kZXIgY3N2IGZpbGUgYXMgdGFibGUKICoKICogLi4gY3N2LXRhYmxlOjogVGFibGUgVGl0bGUKICogICAgOmZpbGU6IENTViBmaWxlIHBhdGggYW5kIG5hbWUKICogICAgOndpZHRoczogMzAsIDcwCiAqICAgIDpoZWFkZXItcm93czogMQogKi8KZmluYWwgY2xhc3MgQ3N2VGFibGVEaXJlY3RpdmUgZXh0ZW5kcyBCYXNlRGlyZWN0aXZlCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgKICAgICAgICBwcml2YXRlIFJ1bGVDb250YWluZXIgJHByb2R1Y3Rpb25zLAogICAgICAgIHByaXZhdGUgTG9nZ2VySW50ZXJmYWNlICRsb2dnZXIsCiAgICApIHsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TmFtZSgpOiBzdHJpbmcKICAgIHsKICAgICAgICByZXR1cm4gJ2Nzdi10YWJsZSc7CiAgICB9CgogICAgLyoqIHtAaW5oZXJpdERvY30gKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBwcm9jZXNzTm9kZSgKICAgICAgICBCbG9ja0NvbnRleHQgJGJsb2NrQ29udGV4dCwKICAgICAgICBEaXJlY3RpdmUgJGRpcmVjdGl2ZSwKICAgICk6IE5vZGUgewogICAgICAgICRvcHRpb25zID0gJHRoaXMtPm9wdGlvbnNUb0FycmF5KCRkaXJlY3RpdmUtPmdldE9wdGlvbnMoKSk7CiAgICAgICAgaWYgKCRkaXJlY3RpdmUtPmhhc09wdGlvbignZmlsZScpKSB7CiAgICAgICAgICAgICRjc3ZTdHJlYW0gPSAkYmxvY2tDb250ZXh0LT5nZXREb2N1bWVudFBhcnNlckNvbnRleHQoKQogICAgICAgICAgICAgICAgLT5nZXRDb250ZXh0KCkKICAgICAgICAgICAgICAgIC0+Z2V0T3JpZ2luKCkKICAgICAgICAgICAgICAgIC0+cmVhZFN0cmVhbSgoc3RyaW5nKSAkZGlyZWN0aXZlLT5nZXRPcHRpb24oJ2ZpbGUnKS0+Z2V0VmFsdWUoKSk7CgogICAgICAgICAgICBpZiAoJGNzdlN0cmVhbSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5sb2dnZXItPmVycm9yKAogICAgICAgICAgICAgICAgICAgICdVbmFibGUgdG8gcmVhZCBDU1YgZmlsZSB7ZmlsZX0nLAogICAgICAgICAgICAgICAgICAgIGFycmF5X21lcmdlKFsnZmlsZScgPT4gJGRpcmVjdGl2ZS0+Z2V0T3B0aW9uKCdmaWxlJyktPmdldFZhbHVlKCldLCAkYmxvY2tDb250ZXh0LT5nZXRMb2dnZXJJbmZvcm1hdGlvbigpKSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBHZW5lcmljTm9kZSgnY3N2LXRhYmxlJyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRjc3YgPSBSZWFkZXI6OmZyb20oJGNzdlN0cmVhbSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJGxpbmVzID0gJGJsb2NrQ29udGV4dC0+Z2V0RG9jdW1lbnRJdGVyYXRvcigpLT50b0FycmF5KCk7CiAgICAgICAgICAgICRjc3YgPSBSZWFkZXI6OmZyb21TdHJpbmcoaW1wbG9kZSgiXG4iLCAkbGluZXMpKTsKICAgICAgICB9CgogICAgICAgIGlmICgkZGlyZWN0aXZlLT5nZXRPcHRpb24oJ2hlYWRlci1yb3dzJyktPmdldFZhbHVlKCkgIT09IG51bGwpIHsKICAgICAgICAgICAgJGNzdi0+c2V0SGVhZGVyT2Zmc2V0KChpbnQpICgkZGlyZWN0aXZlLT5nZXRPcHRpb24oJ2hlYWRlci1yb3dzJyktPmdldFZhbHVlKCkpIC0gMSk7CiAgICAgICAgfQoKICAgICAgICAkaGVhZGVyID0gbnVsbDsKICAgICAgICBpZiAoJGRpcmVjdGl2ZS0+aGFzT3B0aW9uKCdoZWFkZXInKSkgewogICAgICAgICAgICAkaGVhZGVyQ3N2ID0gUmVhZGVyOjpmcm9tU3RyaW5nKCRkaXJlY3RpdmUtPmdldE9wdGlvbignaGVhZGVyJyktPnRvU3RyaW5nKCkpOwoKICAgICAgICAgICAgJGhlYWRlciA9IG5ldyBUYWJsZVJvdygpOwogICAgICAgICAgICBmb3JlYWNoICgkaGVhZGVyQ3N2LT5maXJzdCgpIGFzICRjb2x1bW4pIHsKICAgICAgICAgICAgICAgICRjb2x1bW5Ob2RlID0gbmV3IFRhYmxlQ29sdW1uKCRjb2x1bW4sIDEsIFtdKTsKICAgICAgICAgICAgICAgICRoZWFkZXItPmFkZENvbHVtbigkdGhpcy0+YnVpbGRDb2x1bW4oJGNvbHVtbk5vZGUsICRibG9ja0NvbnRleHQsICR0aGlzLT5wcm9kdWN0aW9ucykpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlaWYgKGVtcHR5KCRjc3YtPmdldEhlYWRlcigpKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgJGhlYWRlciA9IG5ldyBUYWJsZVJvdygpOwogICAgICAgICAgICBmb3JlYWNoICgkY3N2LT5nZXRIZWFkZXIoKSBhcyAkY29sdW1uKSB7CiAgICAgICAgICAgICAgICAkY29sdW1uTm9kZSA9IG5ldyBUYWJsZUNvbHVtbigkY29sdW1uLCAxLCBbXSk7CiAgICAgICAgICAgICAgICAkaGVhZGVyLT5hZGRDb2x1bW4oJHRoaXMtPmJ1aWxkQ29sdW1uKCRjb2x1bW5Ob2RlLCAkYmxvY2tDb250ZXh0LCAkdGhpcy0+cHJvZHVjdGlvbnMpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJHJvd3MgPSBbXTsKICAgICAgICBmb3JlYWNoICgkY3N2LT5nZXRSZWNvcmRzKCkgYXMgJHJlY29yZCkgewogICAgICAgICAgICAkdGFibGVSb3cgPSBuZXcgVGFibGVSb3coKTsKICAgICAgICAgICAgZm9yZWFjaCAoJHJlY29yZCBhcyAkY29sdW1uKSB7CiAgICAgICAgICAgICAgICBhc3NlcnQoaXNfc3RyaW5nKCRjb2x1bW4pIHx8ICRjb2x1bW4gPT09IG51bGwpOwogICAgICAgICAgICAgICAgJGNvbHVtbk5vZGUgPSBuZXcgVGFibGVDb2x1bW4oJGNvbHVtbiA/PyAnJywgMSwgW10pOwogICAgICAgICAgICAgICAgJHRhYmxlUm93LT5hZGRDb2x1bW4oJHRoaXMtPmJ1aWxkQ29sdW1uKCRjb2x1bW5Ob2RlLCAkYmxvY2tDb250ZXh0LCAkdGhpcy0+cHJvZHVjdGlvbnMpKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHJvd3NbXSA9ICR0YWJsZVJvdzsKICAgICAgICB9CgogICAgICAgICR0YWJsZU5vZGUgPSBuZXcgVGFibGVOb2RlKCRyb3dzLCBhcnJheV9maWx0ZXIoWyRoZWFkZXJdKSk7CiAgICAgICAgaWYgKGlzc2V0KCRvcHRpb25zWyd3aWR0aHMnXSkgJiYgJG9wdGlvbnNbJ3dpZHRocyddICE9PSAnYXV0bycgJiYgJG9wdGlvbnNbJ3dpZHRocyddICE9PSAnZ3JpZCcpIHsKICAgICAgICAgICAgJGNvbFdpZHRocyA9IGFycmF5X21hcCgnaW50dmFsJywgZXhwbG9kZSgnLCcsIHN0cnZhbCgkb3B0aW9uc1snd2lkdGhzJ10pKSk7CiAgICAgICAgICAgIC8vIEEgbGlzdCBvZiBpbnRlZ2VycyBpcyB1c2VkIGluc3RlYWQgb2YgdGhlIGlucHV0IGNvbHVtbiB3aWR0aHMuIEltcGxpZXMgImdyaWQiLgogICAgICAgICAgICAkb3B0aW9uc1snd2lkdGhzJ10gPSAnZ3JpZCc7CiAgICAgICAgICAgICR0YWJsZU5vZGUgPSAkdGFibGVOb2RlLT53aXRoQ29sdW1uV2lkdGgoJGNvbFdpZHRocyk7CiAgICAgICAgfQoKICAgICAgICAkdGFibGVOb2RlID0gJHRhYmxlTm9kZS0+d2l0aE9wdGlvbnMoJG9wdGlvbnMpOwoKICAgICAgICByZXR1cm4gJHRhYmxlTm9kZTsKICAgIH0KCiAgICBwcml2YXRlIGZ1bmN0aW9uIGJ1aWxkQ29sdW1uKAogICAgICAgIFRhYmxlQ29sdW1uICRjb2wsCiAgICAgICAgQmxvY2tDb250ZXh0ICRibG9ja0NvbnRleHQsCiAgICAgICAgUnVsZUNvbnRhaW5lciAkcHJvZHVjdGlvbnMsCiAgICApOiBUYWJsZUNvbHVtbiB7CiAgICAgICAgJGNvbnRlbnQgPSAkY29sLT5nZXRDb250ZW50KCk7CiAgICAgICAgJHN1YkNvbnRleHQgPSBuZXcgQmxvY2tDb250ZXh0KCRibG9ja0NvbnRleHQtPmdldERvY3VtZW50UGFyc2VyQ29udGV4dCgpLCAkY29udGVudCwgZmFsc2UsICRibG9ja0NvbnRleHQtPmdldERvY3VtZW50SXRlcmF0b3IoKS0+a2V5KCkpOwogICAgICAgIHdoaWxlICgkc3ViQ29udGV4dC0+Z2V0RG9jdW1lbnRJdGVyYXRvcigpLT52YWxpZCgpKSB7CiAgICAgICAgICAgICRwcm9kdWN0aW9ucy0+YXBwbHkoJHN1YkNvbnRleHQsICRjb2wpOwogICAgICAgIH0KCiAgICAgICAgJG5vZGVzID0gJGNvbC0+Z2V0Q2hpbGRyZW4oKTsKICAgICAgICBpZiAoY291bnQoJG5vZGVzKSA+IDEpIHsKICAgICAgICAgICAgcmV0dXJuICRjb2w7CiAgICAgICAgfQoKICAgICAgICAvLyB0aGUgbGlzdCBpdGVtIG9mZnNldCBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBvZmZzZXQgb2YgdGhlIGZpcnN0IHRleHQKICAgICAgICAkZmlyc3ROb2RlID0gJG5vZGVzWzBdID8/IG51bGw7CiAgICAgICAgaWYgKCRmaXJzdE5vZGUgaW5zdGFuY2VvZiBQYXJhZ3JhcGhOb2RlKSB7CiAgICAgICAgICAgIHJldHVybiBuZXcgVGFibGVDb2x1bW4odHJpbSgkY29udGVudCksICRjb2wtPmdldENvbFNwYW4oKSwgJGZpcnN0Tm9kZS0+Z2V0Q2hpbGRyZW4oKSwgJGNvbC0+Z2V0Um93U3BhbigpKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkY29sOwogICAgfQp9CiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MzU6IlRoaXMgZmlsZSBpcyBwYXJ0IG9mIHBocERvY3VtZW50b3IuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEyMDoiRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0UKZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXExpbmsiOjM6e3M6NzoiACoAbmFtZSI7czo0OiJsaW5rIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7TjtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTGluawBsaW5rIjtzOjE4OiJodHRwczovL3BocGRvYy5vcmciO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czowOiIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjA6e319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG1ldGFkYXRhIjthOjA6e319";