1778692588
441d63ebbc39eba359c9061ece8482bd-phpdoc%3Ae5419a1ade0d2632c5130bd7935d45c4-1886eb7e0eebd0a2d49d60b5d6008801
s:15104:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjI0OiJJbmxpbmVzT25seUV4dGVuc2lvbi5waHAiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjQwOiJcTGVhZ3VlXENvbW1vbk1hcmtcRXh0ZW5zaW9uXElubGluZXNPbmx5IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDA6IlxMZWFndWVcQ29tbW9uTWFya1xFeHRlbnNpb25cSW5saW5lc09ubHkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiSW5saW5lc09ubHkiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czo2MToiXExlYWd1ZVxDb21tb25NYXJrXEV4dGVuc2lvblxJbmxpbmVzT25seVxJbmxpbmVzT25seUV4dGVuc2lvbiI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjE1OntzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AaW1wbGVtZW50cyI7YToxOntzOjU5OiJcTGVhZ3VlXENvbW1vbk1hcmtcRXh0ZW5zaW9uXENvbmZpZ3VyYWJsZUV4dGVuc2lvbkludGVyZmFjZSI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU5OiJcTGVhZ3VlXENvbW1vbk1hcmtcRXh0ZW5zaW9uXENvbmZpZ3VyYWJsZUV4dGVuc2lvbkludGVyZmFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjMwOiJDb25maWd1cmFibGVFeHRlbnNpb25JbnRlcmZhY2UiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjI6e3M6ODA6IlxMZWFndWVcQ29tbW9uTWFya1xFeHRlbnNpb25cSW5saW5lc09ubHlcSW5saW5lc09ubHlFeHRlbnNpb246OmNvbmZpZ3VyZVNjaGVtYSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NDoiXExlYWd1ZVxDb25maWdcQ29uZmlndXJhdGlvbkJ1aWxkZXJJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyOToiQ29uZmlndXJhdGlvbkJ1aWxkZXJJbnRlcmZhY2UiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo3OiJidWlsZGVyIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo3NzM7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MTEzNjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjgwOiJcTGVhZ3VlXENvbW1vbk1hcmtcRXh0ZW5zaW9uXElubGluZXNPbmx5XElubGluZXNPbmx5RXh0ZW5zaW9uOjpjb25maWd1cmVTY2hlbWEoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJjb25maWd1cmVTY2hlbWEiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319czo3MzoiXExlYWd1ZVxDb21tb25NYXJrXEV4dGVuc2lvblxJbmxpbmVzT25seVxJbmxpbmVzT25seUV4dGVuc2lvbjo6cmVnaXN0ZXIoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEzOntzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTg6IlxMZWFndWVcQ29tbW9uTWFya1xFbnZpcm9ubWVudFxFbnZpcm9ubWVudEJ1aWxkZXJJbnRlcmZhY2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyNzoiRW52aXJvbm1lbnRCdWlsZGVySW50ZXJmYWNlIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MTE6ImVudmlyb25tZW50IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToxMjc3O31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjcyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjM3MTE7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3MzoiXExlYWd1ZVxDb21tb25NYXJrXEV4dGVuc2lvblxJbmxpbmVzT25seVxJbmxpbmVzT25seUV4dGVuc2lvbjo6cmVnaXN0ZXIoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6InJlZ2lzdGVyIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjczO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjYxOiJcTGVhZ3VlXENvbW1vbk1hcmtcRXh0ZW5zaW9uXElubGluZXNPbmx5XElubGluZXNPbmx5RXh0ZW5zaW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjA6IklubGluZXNPbmx5RXh0ZW5zaW9uIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGRvY0Jsb2NrIjtOO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwYXJlbnQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjE7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHJlYWRPbmx5IjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYXR0cmlidXRlcyI7YTowOnt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e31zOjQwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGVudW1zIjthOjA6e31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6IjE4ODZlYjdlMGVlYmQwYTJkNDlkNjBiNWQ2MDA4ODAxIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6NzU6InZlbmRvci9sZWFndWUvY29tbW9ubWFyay9zcmMvRXh0ZW5zaW9uL0lubGluZXNPbmx5L0lubGluZXNPbmx5RXh0ZW5zaW9uLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6MzcxNToiPD9waHAKCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKLyoKICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGxlYWd1ZS9jb21tb25tYXJrIHBhY2thZ2UuCiAqCiAqIChjKSBDb2xpbiBPJ0RlbGwgPGNvbGlub2RlbGxAZ21haWwuY29tPgogKgogKiBGb3IgdGhlIGZ1bGwgY29weXJpZ2h0IGFuZCBsaWNlbnNlIGluZm9ybWF0aW9uLCBwbGVhc2UgdmlldyB0aGUgTElDRU5TRQogKiBmaWxlIHRoYXQgd2FzIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBzb3VyY2UgY29kZS4KICovCgpuYW1lc3BhY2UgTGVhZ3VlXENvbW1vbk1hcmtcRXh0ZW5zaW9uXElubGluZXNPbmx5OwoKdXNlIExlYWd1ZVxDb21tb25NYXJrIGFzIENvcmU7CnVzZSBMZWFndWVcQ29tbW9uTWFya1xFbnZpcm9ubWVudFxFbnZpcm9ubWVudEJ1aWxkZXJJbnRlcmZhY2U7CnVzZSBMZWFndWVcQ29tbW9uTWFya1xFeHRlbnNpb25cQ29tbW9uTWFyazsKdXNlIExlYWd1ZVxDb21tb25NYXJrXEV4dGVuc2lvblxDb21tb25NYXJrXERlbGltaXRlclxQcm9jZXNzb3JcRW1waGFzaXNEZWxpbWl0ZXJQcm9jZXNzb3I7CnVzZSBMZWFndWVcQ29tbW9uTWFya1xFeHRlbnNpb25cQ29uZmlndXJhYmxlRXh0ZW5zaW9uSW50ZXJmYWNlOwp1c2UgTGVhZ3VlXENvbmZpZ1xDb25maWd1cmF0aW9uQnVpbGRlckludGVyZmFjZTsKdXNlIE5ldHRlXFNjaGVtYVxFeHBlY3Q7CgpmaW5hbCBjbGFzcyBJbmxpbmVzT25seUV4dGVuc2lvbiBpbXBsZW1lbnRzIENvbmZpZ3VyYWJsZUV4dGVuc2lvbkludGVyZmFjZQp7CiAgICBwdWJsaWMgZnVuY3Rpb24gY29uZmlndXJlU2NoZW1hKENvbmZpZ3VyYXRpb25CdWlsZGVySW50ZXJmYWNlICRidWlsZGVyKTogdm9pZAogICAgewogICAgICAgICRidWlsZGVyLT5hZGRTY2hlbWEoJ2NvbW1vbm1hcmsnLCBFeHBlY3Q6OnN0cnVjdHVyZShbCiAgICAgICAgICAgICd1c2VfYXN0ZXJpc2snID0+IEV4cGVjdDo6Ym9vbCh0cnVlKSwKICAgICAgICAgICAgJ3VzZV91bmRlcnNjb3JlJyA9PiBFeHBlY3Q6OmJvb2wodHJ1ZSksCiAgICAgICAgICAgICdlbmFibGVfc3Ryb25nJyA9PiBFeHBlY3Q6OmJvb2wodHJ1ZSksCiAgICAgICAgICAgICdlbmFibGVfZW0nID0+IEV4cGVjdDo6Ym9vbCh0cnVlKSwKICAgICAgICBdKSk7CiAgICB9CgogICAgLy8gcGhwY3M6ZGlzYWJsZSBHZW5lcmljLkZ1bmN0aW9ucy5GdW5jdGlvbkNhbGxBcmd1bWVudFNwYWNpbmcuVG9vTXVjaFNwYWNlQWZ0ZXJDb21tYSxTcXVpei5XaGl0ZVNwYWNlLlNlbWljb2xvblNwYWNpbmcuSW5jb3JyZWN0CiAgICBwdWJsaWMgZnVuY3Rpb24gcmVnaXN0ZXIoRW52aXJvbm1lbnRCdWlsZGVySW50ZXJmYWNlICRlbnZpcm9ubWVudCk6IHZvaWQKICAgIHsKICAgICAgICAkY2hpbGRSZW5kZXJlciA9IG5ldyBDaGlsZFJlbmRlcmVyKCk7CgogICAgICAgICRlbnZpcm9ubWVudAogICAgICAgICAgICAtPmFkZElubGluZVBhcnNlcihuZXcgQ29yZVxQYXJzZXJcSW5saW5lXE5ld2xpbmVQYXJzZXIoKSwgICAgICAgICAgIDIwMCkKICAgICAgICAgICAgLT5hZGRJbmxpbmVQYXJzZXIobmV3IENvbW1vbk1hcmtcUGFyc2VyXElubGluZVxCYWNrdGlja1BhcnNlcigpLCAgICAxNTApCiAgICAgICAgICAgIC0+YWRkSW5saW5lUGFyc2VyKG5ldyBDb21tb25NYXJrXFBhcnNlclxJbmxpbmVcRXNjYXBhYmxlUGFyc2VyKCksICAgIDgwKQogICAgICAgICAgICAtPmFkZElubGluZVBhcnNlcihuZXcgQ29tbW9uTWFya1xQYXJzZXJcSW5saW5lXEVudGl0eVBhcnNlcigpLCAgICAgICA3MCkKICAgICAgICAgICAgLT5hZGRJbmxpbmVQYXJzZXIobmV3IENvbW1vbk1hcmtcUGFyc2VyXElubGluZVxBdXRvbGlua1BhcnNlcigpLCAgICAgNTApCiAgICAgICAgICAgIC0+YWRkSW5saW5lUGFyc2VyKG5ldyBDb21tb25NYXJrXFBhcnNlclxJbmxpbmVcSHRtbElubGluZVBhcnNlcigpLCAgIDQwKQogICAgICAgICAgICAtPmFkZElubGluZVBhcnNlcihuZXcgQ29tbW9uTWFya1xQYXJzZXJcSW5saW5lXENsb3NlQnJhY2tldFBhcnNlcigpLCAzMCkKICAgICAgICAgICAgLT5hZGRJbmxpbmVQYXJzZXIobmV3IENvbW1vbk1hcmtcUGFyc2VyXElubGluZVxPcGVuQnJhY2tldFBhcnNlcigpLCAgMjApCiAgICAgICAgICAgIC0+YWRkSW5saW5lUGFyc2VyKG5ldyBDb21tb25NYXJrXFBhcnNlclxJbmxpbmVcQmFuZ1BhcnNlcigpLCAgICAgICAgIDEwKQoKICAgICAgICAgICAgLT5hZGRSZW5kZXJlcihDb3JlXE5vZGVcQmxvY2tcRG9jdW1lbnQ6OmNsYXNzLCAgJGNoaWxkUmVuZGVyZXIsIDApCiAgICAgICAgICAgIC0+YWRkUmVuZGVyZXIoQ29yZVxOb2RlXEJsb2NrXFBhcmFncmFwaDo6Y2xhc3MsICRjaGlsZFJlbmRlcmVyLCAwKQoKICAgICAgICAgICAgLT5hZGRSZW5kZXJlcihDb21tb25NYXJrXE5vZGVcSW5saW5lXENvZGU6OmNsYXNzLCAgICAgICBuZXcgQ29tbW9uTWFya1xSZW5kZXJlclxJbmxpbmVcQ29kZVJlbmRlcmVyKCksICAgICAgIDApCiAgICAgICAgICAgIC0+YWRkUmVuZGVyZXIoQ29tbW9uTWFya1xOb2RlXElubGluZVxFbXBoYXNpczo6Y2xhc3MsICAgbmV3IENvbW1vbk1hcmtcUmVuZGVyZXJcSW5saW5lXEVtcGhhc2lzUmVuZGVyZXIoKSwgICAwKQogICAgICAgICAgICAtPmFkZFJlbmRlcmVyKENvbW1vbk1hcmtcTm9kZVxJbmxpbmVcSHRtbElubGluZTo6Y2xhc3MsIG5ldyBDb21tb25NYXJrXFJlbmRlcmVyXElubGluZVxIdG1sSW5saW5lUmVuZGVyZXIoKSwgMCkKICAgICAgICAgICAgLT5hZGRSZW5kZXJlcihDb21tb25NYXJrXE5vZGVcSW5saW5lXEltYWdlOjpjbGFzcywgICAgICBuZXcgQ29tbW9uTWFya1xSZW5kZXJlclxJbmxpbmVcSW1hZ2VSZW5kZXJlcigpLCAgICAgIDApCiAgICAgICAgICAgIC0+YWRkUmVuZGVyZXIoQ29tbW9uTWFya1xOb2RlXElubGluZVxMaW5rOjpjbGFzcywgICAgICAgbmV3IENvbW1vbk1hcmtcUmVuZGVyZXJcSW5saW5lXExpbmtSZW5kZXJlcigpLCAgICAgICAwKQogICAgICAgICAgICAtPmFkZFJlbmRlcmVyKENvcmVcTm9kZVxJbmxpbmVcTmV3bGluZTo6Y2xhc3MsICAgICAgICAgIG5ldyBDb3JlXFJlbmRlcmVyXElubGluZVxOZXdsaW5lUmVuZGVyZXIoKSwgICAgICAgICAgMCkKICAgICAgICAgICAgLT5hZGRSZW5kZXJlcihDb21tb25NYXJrXE5vZGVcSW5saW5lXFN0cm9uZzo6Y2xhc3MsICAgICBuZXcgQ29tbW9uTWFya1xSZW5kZXJlclxJbmxpbmVcU3Ryb25nUmVuZGVyZXIoKSwgICAgIDApCiAgICAgICAgICAgIC0+YWRkUmVuZGVyZXIoQ29yZVxOb2RlXElubGluZVxUZXh0OjpjbGFzcywgICAgICAgICAgICAgbmV3IENvcmVcUmVuZGVyZXJcSW5saW5lXFRleHRSZW5kZXJlcigpLCAgICAgICAgICAgICAwKQogICAgICAgIDsKCiAgICAgICAgaWYgKCRlbnZpcm9ubWVudC0+Z2V0Q29uZmlndXJhdGlvbigpLT5nZXQoJ2NvbW1vbm1hcmsvdXNlX2FzdGVyaXNrJykpIHsKICAgICAgICAgICAgJGVudmlyb25tZW50LT5hZGREZWxpbWl0ZXJQcm9jZXNzb3IobmV3IEVtcGhhc2lzRGVsaW1pdGVyUHJvY2Vzc29yKCcqJykpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCRlbnZpcm9ubWVudC0+Z2V0Q29uZmlndXJhdGlvbigpLT5nZXQoJ2NvbW1vbm1hcmsvdXNlX3VuZGVyc2NvcmUnKSkgewogICAgICAgICAgICAkZW52aXJvbm1lbnQtPmFkZERlbGltaXRlclByb2Nlc3NvcihuZXcgRW1waGFzaXNEZWxpbWl0ZXJQcm9jZXNzb3IoJ18nKSk7CiAgICAgICAgfQogICAgfQp9CiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG1ldGFkYXRhIjthOjA6e319";