1778692624
441d63ebbc39eba359c9061ece8482bd-phpdoc%3A6b9d7993c5b1d89281a7af5518a911c1-ec8034880650f89e61890ab6c9cf550e
s:14632:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjI0OiJSZXNvbHZlSW5saW5lTWFya2Vycy5waHAiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjQ1OiJccGhwRG9jdW1lbnRvclxDb21waWxlclxBcGlEb2N1bWVudGF0aW9uXFBhc3MiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NToiXHBocERvY3VtZW50b3JcQ29tcGlsZXJcQXBpRG9jdW1lbnRhdGlvblxQYXNzIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiUGFzcyI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YToxOntzOjY2OiJccGhwRG9jdW1lbnRvclxDb21waWxlclxBcGlEb2N1bWVudGF0aW9uXFBhc3NcUmVzb2x2ZUlubGluZU1hcmtlcnMiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxNTp7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGltcGxlbWVudHMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBjb25zdGFudHMiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwcm9wZXJ0aWVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0aG9kcyI7YToxOntzOjc3OiJccGhwRG9jdW1lbnRvclxDb21waWxlclxBcGlEb2N1bWVudGF0aW9uXFBhc3NcUmVzb2x2ZUlubGluZU1hcmtlcnM6OnByb2Nlc3MoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEzOntzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDI6IlxwaHBEb2N1bWVudG9yXERlc2NyaXB0b3JcQXBpU2V0RGVzY3JpcHRvciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE2OiJBcGlTZXREZXNjcmlwdG9yIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6Nzoic3ViamVjdCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6OTg0O31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjcyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjIwNzI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDI6IlxwaHBEb2N1bWVudG9yXERlc2NyaXB0b3JcQXBpU2V0RGVzY3JpcHRvciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE2OiJBcGlTZXREZXNjcmlwdG9yIjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjc3OiJccGhwRG9jdW1lbnRvclxDb21waWxlclxBcGlEb2N1bWVudGF0aW9uXFBhc3NcUmVzb2x2ZUlubGluZU1hcmtlcnM6OnByb2Nlc3MoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6InByb2Nlc3MiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo3OToiU2NhbnMgdGhlIGZpbGVzIGZvciBtYXJrZXJzIGFuZCByZWNvcmRzIHRoZW0gaW4gdGhlIG1hcmtlcnMgcHJvcGVydHkgb2YgYSBmaWxlLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czo0NDoicGhwRG9jdW1lbnRvclxDb21waWxlclxBcGlEb2N1bWVudGF0aW9uXFBhc3MiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjQ6e3M6MjA6IkFwaURvY3VtZW50YXRpb25QYXNzIjtzOjYwOiJwaHBEb2N1bWVudG9yXENvbXBpbGVyXEFwaURvY3VtZW50YXRpb25cQXBpRG9jdW1lbnRhdGlvblBhc3MiO3M6MTY6IkFwaVNldERlc2NyaXB0b3IiO3M6NDE6InBocERvY3VtZW50b3JcRGVzY3JpcHRvclxBcGlTZXREZXNjcmlwdG9yIjtzOjE0OiJGaWxlRGVzY3JpcHRvciI7czozOToicGhwRG9jdW1lbnRvclxEZXNjcmlwdG9yXEZpbGVEZXNjcmlwdG9yIjtzOjU6IlN0YWdlIjtzOjM4OiJwaHBEb2N1bWVudG9yXFBpcGVsaW5lXEF0dHJpYnV0ZVxTdGFnZSI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NzM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjY6IlxwaHBEb2N1bWVudG9yXENvbXBpbGVyXEFwaURvY3VtZW50YXRpb25cUGFzc1xSZXNvbHZlSW5saW5lTWFya2VycyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjIwOiJSZXNvbHZlSW5saW5lTWFya2VycyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcGFyZW50IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjE6IlxwaHBEb2N1bWVudG9yXENvbXBpbGVyXEFwaURvY3VtZW50YXRpb25cQXBpRG9jdW1lbnRhdGlvblBhc3MiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMDoiQXBpRG9jdW1lbnRhdGlvblBhc3MiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MTtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcmVhZE9ubHkiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhdHRyaWJ1dGVzIjthOjE6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEF0dHJpYnV0ZSI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXR0cmlidXRlAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzk6IlxwaHBEb2N1bWVudG9yXFBpcGVsaW5lXEF0dHJpYnV0ZVxTdGFnZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6IlN0YWdlIjt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXR0cmlidXRlAGFyZ3VtZW50cyI7YTozOntpOjA7Tzo0MToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDYWxsQXJndW1lbnQiOjI6e3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENhbGxBcmd1bWVudAB2YWx1ZSI7czo0MzoiJ3BocGRvYy5waXBlbGluZS5hcGlfZG9jdW1lbnRhdGlvbi5jb21waWxlJyI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2FsbEFyZ3VtZW50AG5hbWUiO047fWk6MTtPOjQxOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENhbGxBcmd1bWVudCI6Mjp7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2FsbEFyZ3VtZW50AHZhbHVlIjtzOjQ6IjkwMDAiO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENhbGxBcmd1bWVudABuYW1lIjtOO31pOjI7Tzo0MToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDYWxsQXJndW1lbnQiOjI6e3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENhbGxBcmd1bWVudAB2YWx1ZSI7czozMToiJ0NvbGxlY3QgYWxsIG1hcmtlcnMgaW4gYSBmaWxlJyI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2FsbEFyZ3VtZW50AG5hbWUiO047fX19fX19czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9czo0MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBlbnVtcyI7YTowOnt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiJlYzgwMzQ4ODA2NTBmODllNjE4OTBhYjZjOWNmNTUwZSI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjEwODoidmVuZG9yL3BocGRvY3VtZW50b3IvcGhwZG9jdW1lbnRvci9zcmMvcGhwRG9jdW1lbnRvci9Db21waWxlci9BcGlEb2N1bWVudGF0aW9uL1Bhc3MvUmVzb2x2ZUlubGluZU1hcmtlcnMucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czoyMDc2OiI8P3BocAoKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CgovKioKICogIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHBocERvY3VtZW50b3IuCiAqCiAqICBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRQogKiAgZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuCiAqCiAqIEBsaW5rIGh0dHBzOi8vcGhwZG9jLm9yZwogKi8KCm5hbWVzcGFjZSBwaHBEb2N1bWVudG9yXENvbXBpbGVyXEFwaURvY3VtZW50YXRpb25cUGFzczsKCnVzZSBwaHBEb2N1bWVudG9yXENvbXBpbGVyXEFwaURvY3VtZW50YXRpb25cQXBpRG9jdW1lbnRhdGlvblBhc3M7CnVzZSBwaHBEb2N1bWVudG9yXERlc2NyaXB0b3JcQXBpU2V0RGVzY3JpcHRvcjsKdXNlIHBocERvY3VtZW50b3JcRGVzY3JpcHRvclxGaWxlRGVzY3JpcHRvcjsKdXNlIHBocERvY3VtZW50b3JcUGlwZWxpbmVcQXR0cmlidXRlXFN0YWdlOwoKdXNlIGZ1bmN0aW9uIGltcGxvZGU7CnVzZSBmdW5jdGlvbiBwcmVnX21hdGNoX2FsbDsKdXNlIGZ1bmN0aW9uIHN0cl9yZXBsYWNlOwp1c2UgZnVuY3Rpb24gc3RyX3NwbGl0Owp1c2UgZnVuY3Rpb24gc3RybGVuOwp1c2UgZnVuY3Rpb24gdHJpbTsKCnVzZSBjb25zdCBQUkVHX09GRlNFVF9DQVBUVVJFOwp1c2UgY29uc3QgUFJFR19TRVRfT1JERVI7CgojW1N0YWdlKAogICAgJ3BocGRvYy5waXBlbGluZS5hcGlfZG9jdW1lbnRhdGlvbi5jb21waWxlJywKICAgIDkwMDAsCiAgICAnQ29sbGVjdCBhbGwgbWFya2VycyBpbiBhIGZpbGUnLAopXQpmaW5hbCBjbGFzcyBSZXNvbHZlSW5saW5lTWFya2VycyBleHRlbmRzIEFwaURvY3VtZW50YXRpb25QYXNzCnsKICAgIC8qKgogICAgICogU2NhbnMgdGhlIGZpbGVzIGZvciBtYXJrZXJzIGFuZCByZWNvcmRzIHRoZW0gaW4gdGhlIG1hcmtlcnMgcHJvcGVydHkgb2YgYSBmaWxlLgogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gcHJvY2VzcyhBcGlTZXREZXNjcmlwdG9yICRzdWJqZWN0KTogQXBpU2V0RGVzY3JpcHRvcgogICAgewogICAgICAgICRtYXJrZXJUZXJtcyA9ICRzdWJqZWN0LT5nZXRTZXR0aW5ncygpWydtYXJrZXJzJ107CgogICAgICAgIC8qKiBAdmFyIEZpbGVEZXNjcmlwdG9yICRmaWxlICovCiAgICAgICAgZm9yZWFjaCAoJHN1YmplY3QtPmdldEZpbGVzKCkgYXMgJGZpbGUpIHsKICAgICAgICAgICAgJG1hdGNoZXMgPSBbXTsKICAgICAgICAgICAgJHNvdXJjZSAgPSAkZmlsZS0+Z2V0U291cmNlKCkgPz8gJyc7CgogICAgICAgICAgICBwcmVnX21hdGNoX2FsbCgKICAgICAgICAgICAgICAgICd+Ly9bXHNdKignIC4gaW1wbG9kZSgnfCcsICRtYXJrZXJUZXJtcykgLiAnKVw6P1tcc10qKC4qKX4nLAogICAgICAgICAgICAgICAgJHNvdXJjZSwKICAgICAgICAgICAgICAgICRtYXRjaGVzLAogICAgICAgICAgICAgICAgUFJFR19TRVRfT1JERVIgfCBQUkVHX09GRlNFVF9DQVBUVVJFLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgZm9yZWFjaCAoJG1hdGNoZXMgYXMgJG1hdGNoKSB7CiAgICAgICAgICAgICAgICBbJGJlZm9yZV0gPSBzdHJfc3BsaXQoJHNvdXJjZSwgJG1hdGNoWzFdWzFdKTsgLy8gZmV0Y2hlcyBhbGwgdGhlIHRleHQgYmVmb3JlIHRoZSBtYXRjaAoKICAgICAgICAgICAgICAgICRsaW5lTnVtYmVyID0gc3RybGVuKCRiZWZvcmUpIC0gc3RybGVuKHN0cl9yZXBsYWNlKCJcbiIsICcnLCAkYmVmb3JlKSkgKyAxOwogICAgICAgICAgICAgICAgJGZpbGUtPmdldE1hcmtlcnMoKS0+YWRkKAogICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnID0+IHRyaW0oJG1hdGNoWzFdWzBdLCAnQCcpLAogICAgICAgICAgICAgICAgICAgICAgICAnbGluZScgPT4gJGxpbmVOdW1iZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICdtZXNzYWdlJyA9PiAkbWF0Y2hbMl1bMF0sCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkc3ViamVjdDsKICAgIH0KfQoiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjM1OiJUaGlzIGZpbGUgaXMgcGFydCBvZiBwaHBEb2N1bWVudG9yLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMjA6IkZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFCmZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xMaW5rIjozOntzOjc6IgAqAG5hbWUiO3M6NDoibGluayI7czoxNDoiACoAZGVzY3JpcHRpb24iO047czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXExpbmsAbGluayI7czoxODoiaHR0cHM6Ly9waHBkb2Mub3JnIjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBtZXRhZGF0YSI7YTowOnt9fQ==";