1778692631
441d63ebbc39eba359c9061ece8482bd-phpdoc%3A06666d0d6015746f63c999cb68516955-0818e723fc92dfe58992cd97acae0894
s:19836:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjIwOiJQcm9wZXJ0eUhvb2tUZXN0LnBocCI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6MTI6IlxpbnRlZ3JhdGlvbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjEyOiJcaW50ZWdyYXRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiaW50ZWdyYXRpb24iO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czoyOToiXGludGVncmF0aW9uXFByb3BlcnR5SG9va1Rlc3QiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxNTp7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGltcGxlbWVudHMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBjb25zdGFudHMiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwcm9wZXJ0aWVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0aG9kcyI7YTozOntzOjYyOiJcaW50ZWdyYXRpb25cUHJvcGVydHlIb29rVGVzdDo6dGVzdFByb3BlcnR5SG9va1dpdGhEb2NibG9ja3MoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEzOntzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjg1OTt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1ODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToyNDEwO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjI6IlxpbnRlZ3JhdGlvblxQcm9wZXJ0eUhvb2tUZXN0Ojp0ZXN0UHJvcGVydHlIb29rV2l0aERvY2Jsb2NrcygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6Mjk6InRlc3RQcm9wZXJ0eUhvb2tXaXRoRG9jYmxvY2tzIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fXM6NTk6IlxpbnRlZ3JhdGlvblxQcm9wZXJ0eUhvb2tUZXN0Ojp0ZXN0UHJvcGVydHlIb29rQXN5bW1ldHJpYygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MjQxNzt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTozOTMyO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTk6IlxpbnRlZ3JhdGlvblxQcm9wZXJ0eUhvb2tUZXN0Ojp0ZXN0UHJvcGVydHlIb29rQXN5bW1ldHJpYygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjY6InRlc3RQcm9wZXJ0eUhvb2tBc3ltbWV0cmljIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fXM6NTI6IlxpbnRlZ3JhdGlvblxQcm9wZXJ0eUhvb2tUZXN0Ojp0ZXN0VmlydHVhbFByb3BlcnR5KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTozOTM5O31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEzMDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo2MTkzO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTI6IlxpbnRlZ3JhdGlvblxQcm9wZXJ0eUhvb2tUZXN0Ojp0ZXN0VmlydHVhbFByb3BlcnR5KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxOToidGVzdFZpcnR1YWxQcm9wZXJ0eSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MjM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMzE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjk6IlxpbnRlZ3JhdGlvblxQcm9wZXJ0eUhvb2tUZXN0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTY6IlByb3BlcnR5SG9va1Rlc3QiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO047czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI3OiJcUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJUZXN0Q2FzZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmaW5hbCI7YjoxO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwByZWFkT25seSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGF0dHJpYnV0ZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXR0cmlidXRlIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBdHRyaWJ1dGUAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1OToiXEVsaWFzSGFldXNzbGVyXFBIUFVuaXRBdHRyaWJ1dGVzXEF0dHJpYnV0ZVxSZXF1aXJlc1BhY2thZ2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiUmVxdWlyZXNQYWNrYWdlIjt9czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXR0cmlidXRlAGFyZ3VtZW50cyI7YToyOntpOjA7Tzo0MToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDYWxsQXJndW1lbnQiOjI6e3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENhbGxBcmd1bWVudAB2YWx1ZSI7czoxODoiJ25pa2ljL3BocC1wYXJzZXInIjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDYWxsQXJndW1lbnQAbmFtZSI7Tjt9aToxO086NDE6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2FsbEFyZ3VtZW50IjoyOntzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDYWxsQXJndW1lbnQAdmFsdWUiO3M6ODoiJz49IDUuMiciO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENhbGxBcmd1bWVudABuYW1lIjtOO319fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEF0dHJpYnV0ZSI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXR0cmlidXRlAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDM6IlxQSFBVbml0XEZyYW1ld29ya1xBdHRyaWJ1dGVzXENvdmVyc05vdGhpbmciO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMzoiQ292ZXJzTm90aGluZyI7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEF0dHJpYnV0ZQBhcmd1bWVudHMiO2E6MDp7fX19fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e31zOjQwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGVudW1zIjthOjA6e31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6IjA4MThlNzIzZmM5MmRmZTU4OTkyY2Q5N2FjYWUwODk0IjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6NzA6InZlbmRvci9waHBkb2N1bWVudG9yL3JlZmxlY3Rpb24vdGVzdHMvaW50ZWdyYXRpb24vUHJvcGVydHlIb29rVGVzdC5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjYxOTc6Ijw/cGhwCgpkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKCm5hbWVzcGFjZSBpbnRlZ3JhdGlvbjsKCnVzZSBFbGlhc0hhZXVzc2xlclxQSFBVbml0QXR0cmlidXRlc1xBdHRyaWJ1dGVcUmVxdWlyZXNQYWNrYWdlOwp1c2UgcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrOwp1c2UgcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZpbGVcTG9jYWxGaWxlOwp1c2UgcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uOwp1c2UgcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudDsKdXNlIHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXN5bW1ldHJpY1Zpc2liaWxpdHk7CnVzZSBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEF0dHJpYnV0ZTsKdXNlIHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvamVjdEZhY3Rvcnk7CnVzZSBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5SG9vazsKdXNlIHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eTsKdXNlIHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZDsKdXNlIHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyOwp1c2UgcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ187CnVzZSBQSFBVbml0XEZyYW1ld29ya1xBdHRyaWJ1dGVzXENvdmVyc05vdGhpbmc7CnVzZSBQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZTsKCiNbUmVxdWlyZXNQYWNrYWdlKCduaWtpYy9waHAtcGFyc2VyJywgJz49IDUuMicpXQojW0NvdmVyc05vdGhpbmddCmZpbmFsIGNsYXNzIFByb3BlcnR5SG9va1Rlc3QgZXh0ZW5kcyBUZXN0Q2FzZQp7CiAgICBwdWJsaWMgZnVuY3Rpb24gdGVzdFByb3BlcnR5SG9va1dpdGhEb2NibG9ja3MoKTogdm9pZAogICAgewogICAgICAgICRmaWxlID0gX19ESVJfXyAuICcvZGF0YS9QSFA4NC9Qcm9wZXJ0eUhvb2sucGhwJzsKICAgICAgICAkcHJvamVjdEZhY3RvcnkgPSBQcm9qZWN0RmFjdG9yeTo6Y3JlYXRlSW5zdGFuY2UoKTsKICAgICAgICAkcHJvamVjdCA9ICRwcm9qZWN0RmFjdG9yeS0+Y3JlYXRlKCdNeSBwcm9qZWN0JywgW25ldyBMb2NhbEZpbGUoJGZpbGUpXSk7CgogICAgICAgICRjbGFzcyA9ICRwcm9qZWN0LT5nZXRGaWxlcygpWyRmaWxlXS0+Z2V0Q2xhc3NlcygpWydcUHJvcGVydHlIb29rJ107CiAgICAgICAgJGhvb2tzID0gJGNsYXNzLT5nZXRQcm9wZXJ0aWVzKClbJ1xQcm9wZXJ0eUhvb2s6OiRleGFtcGxlJ10tPmdldEhvb2tzKCk7CgogICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCRjbGFzcy0+Z2V0UHJvcGVydGllcygpWydcUHJvcGVydHlIb29rOjokZXhhbXBsZSddLT5pc1ZpcnR1YWwoKSk7CiAgICAgICAgJHRoaXMtPmFzc2VydENvdW50KDIsICRob29rcyk7CiAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnZ2V0JywgJGhvb2tzWzBdLT5nZXROYW1lKCkpOwogICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMobmV3IFZpc2liaWxpdHkoVmlzaWJpbGl0eTo6UFVCTElDXyksICRob29rc1swXS0+Z2V0VmlzaWJpbGl0eSgpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0Q291bnQoMSwgJGhvb2tzWzBdLT5nZXRBdHRyaWJ1dGVzKCkpOwogICAgICAgICR0aGlzLT5hc3NlcnRDb3VudCgwLCAkaG9va3NbMF0tPmdldEFyZ3VtZW50cygpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnTm90IHN1cmUgdGhpcyB3b3JrcywgYnV0IGl0IGdldHMnLCAkaG9va3NbMF0tPmdldERvY0Jsb2NrKCktPmdldFN1bW1hcnkoKSk7CgogICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ3NldCcsICRob29rc1sxXS0+Z2V0TmFtZSgpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKG5ldyBWaXNpYmlsaXR5KFZpc2liaWxpdHk6OlBVQkxJQ18pLCAkaG9va3NbMV0tPmdldFZpc2liaWxpdHkoKSk7CiAgICAgICAgJHRoaXMtPmFzc2VydENvdW50KDEsICRob29rc1sxXS0+Z2V0QXR0cmlidXRlcygpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0Q291bnQoMSwgJGhvb2tzWzFdLT5nZXRBcmd1bWVudHMoKSk7CiAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyhuZXcgQXJndW1lbnQoCiAgICAgICAgICAgICd2YWx1ZScsCiAgICAgICAgICAgIG5ldyBDb21wb3VuZCgKICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICBuZXcgU3RyaW5nXygpLAogICAgICAgICAgICAgICAgICAgIG5ldyBJbnRlZ2VyKCkKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgKSwKICAgICAgICApLCAkaG9va3NbMV0tPmdldEFyZ3VtZW50cygpWzBdKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0U2FtZSgnTm90IHN1cmUgdGhpcyB3b3JrcywgYnV0IGl0IGdldHMnLCAkaG9va3NbMF0tPmdldERvY0Jsb2NrKCktPmdldFN1bW1hcnkoKSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHRlc3RQcm9wZXJ0eUhvb2tBc3ltbWV0cmljKCk6IHZvaWQKICAgIHsKICAgICAgICAkZmlsZSA9IF9fRElSX18gLiAnL2RhdGEvUEhQODQvUHJvcGVydHlIb29rQXN5bW1ldHJpYy5waHAnOwogICAgICAgICRwcm9qZWN0RmFjdG9yeSA9IFByb2plY3RGYWN0b3J5OjpjcmVhdGVJbnN0YW5jZSgpOwogICAgICAgICRwcm9qZWN0ID0gJHByb2plY3RGYWN0b3J5LT5jcmVhdGUoJ015IHByb2plY3QnLCBbbmV3IExvY2FsRmlsZSgkZmlsZSldKTsKCiAgICAgICAgJGNsYXNzID0gJHByb2plY3QtPmdldEZpbGVzKClbJGZpbGVdLT5nZXRDbGFzc2VzKClbJ1xQcm9wZXJ0eUhvb2snXTsKICAgICAgICAkaG9va3MgPSAkY2xhc3MtPmdldFByb3BlcnRpZXMoKVsnXFByb3BlcnR5SG9vazo6JGV4YW1wbGUnXS0+Z2V0SG9va3MoKTsKCgogICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoCiAgICAgICAgICAgIG5ldyBBc3ltbWV0cmljVmlzaWJpbGl0eSgKICAgICAgICAgICAgICAgIG5ldyBWaXNpYmlsaXR5KFZpc2liaWxpdHk6OlBVQkxJQ18pLAogICAgICAgICAgICAgICAgbmV3IFZpc2liaWxpdHkoVmlzaWJpbGl0eTo6UFJJVkFURV8pCiAgICAgICAgICAgICksCiAgICAgICAgICAgICRjbGFzcy0+Z2V0UHJvcGVydGllcygpWydcUHJvcGVydHlIb29rOjokZXhhbXBsZSddLT5nZXRWaXNpYmlsaXR5KCkKICAgICAgICApOwogICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCRjbGFzcy0+Z2V0UHJvcGVydGllcygpWydcUHJvcGVydHlIb29rOjokZXhhbXBsZSddLT5pc1ZpcnR1YWwoKSk7CiAgICAgICAgJHRoaXMtPmFzc2VydENvdW50KDIsICRob29rcyk7CiAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscygnZ2V0JywgJGhvb2tzWzBdLT5nZXROYW1lKCkpOwogICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMobmV3IFZpc2liaWxpdHkoVmlzaWJpbGl0eTo6UFVCTElDXyksICRob29rc1swXS0+Z2V0VmlzaWJpbGl0eSgpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0Q291bnQoMCwgJGhvb2tzWzBdLT5nZXRBcmd1bWVudHMoKSk7CgogICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ3NldCcsICRob29rc1sxXS0+Z2V0TmFtZSgpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKG5ldyBWaXNpYmlsaXR5KFZpc2liaWxpdHk6OlBSSVZBVEVfKSwgJGhvb2tzWzFdLT5nZXRWaXNpYmlsaXR5KCkpOwogICAgICAgICR0aGlzLT5hc3NlcnRDb3VudCgxLCAkaG9va3NbMV0tPmdldEFyZ3VtZW50cygpKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKG5ldyBBcmd1bWVudCgKICAgICAgICAgICAgJ3ZhbHVlJywKICAgICAgICAgICAgbmV3IENvbXBvdW5kKAogICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgIG5ldyBTdHJpbmdfKCksCiAgICAgICAgICAgICAgICAgICAgbmV3IEludGVnZXIoKQogICAgICAgICAgICAgICAgXQogICAgICAgICAgICApLAogICAgICAgICksICRob29rc1sxXS0+Z2V0QXJndW1lbnRzKClbMF0pOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB0ZXN0VmlydHVhbFByb3BlcnR5KCk6IHZvaWQKICAgIHsKICAgICAgICAkZmlsZSA9IF9fRElSX18gLiAnL2RhdGEvUEhQODQvUHJvcGVydHlIb29rVmlydHVhbC5waHAnOwogICAgICAgICRwcm9qZWN0RmFjdG9yeSA9IFByb2plY3RGYWN0b3J5OjpjcmVhdGVJbnN0YW5jZSgpOwogICAgICAgICRwcm9qZWN0ID0gJHByb2plY3RGYWN0b3J5LT5jcmVhdGUoJ015IHByb2plY3QnLCBbbmV3IExvY2FsRmlsZSgkZmlsZSldKTsKCiAgICAgICAgJGNsYXNzID0gJHByb2plY3QtPmdldEZpbGVzKClbJGZpbGVdLT5nZXRDbGFzc2VzKClbJ1xQcm9wZXJ0eUhvb2tWaXJ0dWFsJ107CgogICAgICAgIC8vIFRlc3QgZ2V0LW9ubHkgdmlydHVhbCBwcm9wZXJ0eQogICAgICAgICRmdWxsTmFtZVByb3BlcnR5ID0gJGNsYXNzLT5nZXRQcm9wZXJ0aWVzKClbJ1xQcm9wZXJ0eUhvb2tWaXJ0dWFsOjokZnVsbE5hbWUnXTsKICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkZnVsbE5hbWVQcm9wZXJ0eS0+aXNWaXJ0dWFsKCksICdQcm9wZXJ0eSB3aXRoIGdldHRlciB0aGF0IGRvZXNuXCd0IHJlZmVyZW5jZSBpdHNlbGYgc2hvdWxkIGJlIHZpcnR1YWwnKTsKICAgICAgICAkdGhpcy0+YXNzZXJ0Q291bnQoMSwgJGZ1bGxOYW1lUHJvcGVydHktPmdldEhvb2tzKCkpOwogICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ2dldCcsICRmdWxsTmFtZVByb3BlcnR5LT5nZXRIb29rcygpWzBdLT5nZXROYW1lKCkpOwoKICAgICAgICAvLyBUZXN0IHNldC1vbmx5IHZpcnR1YWwgcHJvcGVydHkKICAgICAgICAkY29tcG9zaXRlTmFtZVByb3BlcnR5ID0gJGNsYXNzLT5nZXRQcm9wZXJ0aWVzKClbJ1xQcm9wZXJ0eUhvb2tWaXJ0dWFsOjokY29tcG9zaXRlTmFtZSddOwogICAgICAgICR0aGlzLT5hc3NlcnRUcnVlKCRjb21wb3NpdGVOYW1lUHJvcGVydHktPmlzVmlydHVhbCgpLCAnUHJvcGVydHkgd2l0aCBzZXR0ZXIgdGhhdCBkb2VzblwndCByZWZlcmVuY2UgaXRzZWxmIHNob3VsZCBiZSB2aXJ0dWFsJyk7CiAgICAgICAgJHRoaXMtPmFzc2VydENvdW50KDEsICRjb21wb3NpdGVOYW1lUHJvcGVydHktPmdldEhvb2tzKCkpOwogICAgICAgICR0aGlzLT5hc3NlcnRFcXVhbHMoJ3NldCcsICRjb21wb3NpdGVOYW1lUHJvcGVydHktPmdldEhvb2tzKClbMF0tPmdldE5hbWUoKSk7CgogICAgICAgIC8vIFRlc3QgcHJvcGVydHkgd2l0aCBib3RoIGdldCBhbmQgc2V0IGhvb2tzIHRoYXQgZG9lc24ndCByZWZlcmVuY2UgaXRzZWxmCiAgICAgICAgJGNvbXBsZXRlRnVsbE5hbWVQcm9wZXJ0eSA9ICRjbGFzcy0+Z2V0UHJvcGVydGllcygpWydcUHJvcGVydHlIb29rVmlydHVhbDo6JGNvbXBsZXRlRnVsbE5hbWUnXTsKICAgICAgICAkdGhpcy0+YXNzZXJ0VHJ1ZSgkY29tcGxldGVGdWxsTmFtZVByb3BlcnR5LT5pc1ZpcnR1YWwoKSwgJ1Byb3BlcnR5IHdpdGggZ2V0dGVyIGFuZCBzZXR0ZXIgdGhhdCBkb25cJ3QgcmVmZXJlbmNlIGl0c2VsZiBzaG91bGQgYmUgdmlydHVhbCcpOwogICAgICAgICR0aGlzLT5hc3NlcnRDb3VudCgyLCAkY29tcGxldGVGdWxsTmFtZVByb3BlcnR5LT5nZXRIb29rcygpKTsKCiAgICAgICAgJG5vblZpcnR1YWxQcm9wZXJ0eVdpdGhvdXRIb29rcyA9ICRjbGFzcy0+Z2V0UHJvcGVydGllcygpWydcUHJvcGVydHlIb29rVmlydHVhbDo6JGZpcnN0TmFtZSddOwogICAgICAgICR0aGlzLT5hc3NlcnRGYWxzZSgkbm9uVmlydHVhbFByb3BlcnR5V2l0aG91dEhvb2tzLT5pc1ZpcnR1YWwoKSwgJ1Byb3BlcnR5IHdpdGhvdXQgaG9va3Mgc2hvdWxkIG5vdCBiZSB2aXJ0dWFsJyk7CiAgICAgICAgJHRoaXMtPmFzc2VydENvdW50KDAsICRub25WaXJ0dWFsUHJvcGVydHlXaXRob3V0SG9va3MtPmdldEhvb2tzKCkpOwoKICAgICAgICAvLyBUZXN0IG5vbi12aXJ0dWFsIHByb3BlcnR5IHRoYXQgcmVmZXJlbmNlcyBpdHNlbGYKICAgICAgICAkbm9uVmlydHVhbE5hbWVQcm9wZXJ0eSA9ICRjbGFzcy0+Z2V0UHJvcGVydGllcygpWydcUHJvcGVydHlIb29rVmlydHVhbDo6JG5vblZpcnR1YWxOYW1lJ107CiAgICAgICAgJHRoaXMtPmFzc2VydEZhbHNlKCRub25WaXJ0dWFsTmFtZVByb3BlcnR5LT5pc1ZpcnR1YWwoKSwgJ1Byb3BlcnR5IHdpdGggaG9va3MgdGhhdCByZWZlcmVuY2UgaXRzZWxmIHNob3VsZCBub3QgYmUgdmlydHVhbCcpOwogICAgICAgICR0aGlzLT5hc3NlcnRDb3VudCgyLCAkbm9uVmlydHVhbE5hbWVQcm9wZXJ0eS0+Z2V0SG9va3MoKSk7CiAgICB9Cn0KIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGRvY0Jsb2NrIjtOO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbWV0YWRhdGEiO2E6MDp7fX0=";