1778692587
441d63ebbc39eba359c9061ece8482bd-phpdoc%3A77ff043875e576178a45a85992799ebe-d63a6b0f544de2ff4d578e058e1bc2d2
s:9796:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjI3OiJMb29zZURlc2NyaXB0aW9uSGFuZGxlci5waHAiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjUwOiJcTGVhZ3VlXENvbW1vbk1hcmtcRXh0ZW5zaW9uXERlc2NyaXB0aW9uTGlzdFxFdmVudCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUwOiJcTGVhZ3VlXENvbW1vbk1hcmtcRXh0ZW5zaW9uXERlc2NyaXB0aW9uTGlzdFxFdmVudCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6IkV2ZW50Ijt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjE6e3M6NzQ6IlxMZWFndWVcQ29tbW9uTWFya1xFeHRlbnNpb25cRGVzY3JpcHRpb25MaXN0XEV2ZW50XExvb3NlRGVzY3JpcHRpb25IYW5kbGVyIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTU6e3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6MTp7czo4NjoiXExlYWd1ZVxDb21tb25NYXJrXEV4dGVuc2lvblxEZXNjcmlwdGlvbkxpc3RcRXZlbnRcTG9vc2VEZXNjcmlwdGlvbkhhbmRsZXI6Ol9faW52b2tlKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ0OiJcTGVhZ3VlXENvbW1vbk1hcmtcRXZlbnRcRG9jdW1lbnRQYXJzZWRFdmVudCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE5OiJEb2N1bWVudFBhcnNlZEV2ZW50Ijt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NToiZXZlbnQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjc2MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToyMjY2O31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6ODY6IlxMZWFndWVcQ29tbW9uTWFya1xFeHRlbnNpb25cRGVzY3JpcHRpb25MaXN0XEV2ZW50XExvb3NlRGVzY3JpcHRpb25IYW5kbGVyOjpfX2ludm9rZSgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiX19pbnZva2UiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjI0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NzQ6IlxMZWFndWVcQ29tbW9uTWFya1xFeHRlbnNpb25cRGVzY3JpcHRpb25MaXN0XEV2ZW50XExvb3NlRGVzY3JpcHRpb25IYW5kbGVyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjM6Ikxvb3NlRGVzY3JpcHRpb25IYW5kbGVyIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGRvY0Jsb2NrIjtOO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwYXJlbnQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjE7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHJlYWRPbmx5IjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYXR0cmlidXRlcyI7YTowOnt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e31zOjQwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGVudW1zIjthOjA6e31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6ImQ2M2E2YjBmNTQ0ZGUyZmY0ZDU3OGUwNThlMWJjMmQyIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6ODg6InZlbmRvci9sZWFndWUvY29tbW9ubWFyay9zcmMvRXh0ZW5zaW9uL0Rlc2NyaXB0aW9uTGlzdC9FdmVudC9Mb29zZURlc2NyaXB0aW9uSGFuZGxlci5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjIyNzA6Ijw/cGhwCgpkZWNsYXJlKHN0cmljdF90eXBlcz0xKTsKCi8qCiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsZWFndWUvY29tbW9ubWFyayBwYWNrYWdlLgogKgogKiAoYykgQ29saW4gTydEZWxsIDxjb2xpbm9kZWxsQGdtYWlsLmNvbT4KICoKICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0UKICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuCiAqLwoKbmFtZXNwYWNlIExlYWd1ZVxDb21tb25NYXJrXEV4dGVuc2lvblxEZXNjcmlwdGlvbkxpc3RcRXZlbnQ7Cgp1c2UgTGVhZ3VlXENvbW1vbk1hcmtcRXZlbnRcRG9jdW1lbnRQYXJzZWRFdmVudDsKdXNlIExlYWd1ZVxDb21tb25NYXJrXEV4dGVuc2lvblxEZXNjcmlwdGlvbkxpc3RcTm9kZVxEZXNjcmlwdGlvbjsKdXNlIExlYWd1ZVxDb21tb25NYXJrXEV4dGVuc2lvblxEZXNjcmlwdGlvbkxpc3RcTm9kZVxEZXNjcmlwdGlvbkxpc3Q7CnVzZSBMZWFndWVcQ29tbW9uTWFya1xFeHRlbnNpb25cRGVzY3JpcHRpb25MaXN0XE5vZGVcRGVzY3JpcHRpb25UZXJtOwp1c2UgTGVhZ3VlXENvbW1vbk1hcmtcTm9kZVxCbG9ja1xQYXJhZ3JhcGg7CnVzZSBMZWFndWVcQ29tbW9uTWFya1xOb2RlXElubGluZVxOZXdsaW5lOwp1c2UgTGVhZ3VlXENvbW1vbk1hcmtcTm9kZVxOb2RlSXRlcmF0b3I7CgpmaW5hbCBjbGFzcyBMb29zZURlc2NyaXB0aW9uSGFuZGxlcgp7CiAgICBwdWJsaWMgZnVuY3Rpb24gX19pbnZva2UoRG9jdW1lbnRQYXJzZWRFdmVudCAkZXZlbnQpOiB2b2lkCiAgICB7CiAgICAgICAgZm9yZWFjaCAoJGV2ZW50LT5nZXREb2N1bWVudCgpLT5pdGVyYXRvcihOb2RlSXRlcmF0b3I6OkZMQUdfQkxPQ0tTX09OTFkpIGFzICRkZXNjcmlwdGlvbikgewogICAgICAgICAgICBpZiAoISAkZGVzY3JpcHRpb24gaW5zdGFuY2VvZiBEZXNjcmlwdGlvbikgewogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIERvZXMgdGhpcyBkZXNjcmlwdGlvbiBuZWVkIHRvIGJlIGFkZGVkIHRvIGEgbGlzdD8KICAgICAgICAgICAgaWYgKCEgJGRlc2NyaXB0aW9uLT5wYXJlbnQoKSBpbnN0YW5jZW9mIERlc2NyaXB0aW9uTGlzdCkgewogICAgICAgICAgICAgICAgJGxpc3QgPSBuZXcgRGVzY3JpcHRpb25MaXN0KCk7CiAgICAgICAgICAgICAgICAvLyBUYWtpbmcgYW55IHByZWNlZGluZyBwYXJhZ3JhcGhzIHdpdGggaXQKICAgICAgICAgICAgICAgIGlmICgoJHBhcmFncmFwaCA9ICRkZXNjcmlwdGlvbi0+cHJldmlvdXMoKSkgaW5zdGFuY2VvZiBQYXJhZ3JhcGgpIHsKICAgICAgICAgICAgICAgICAgICAkbGlzdC0+YXBwZW5kQ2hpbGQoJHBhcmFncmFwaCk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJGRlc2NyaXB0aW9uLT5yZXBsYWNlV2l0aCgkbGlzdCk7CiAgICAgICAgICAgICAgICAkbGlzdC0+YXBwZW5kQ2hpbGQoJGRlc2NyaXB0aW9uKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gSXMgdGhpcyBkZXNjcmlwdGlvbiBwcmVjZWRlZCBieSBhIHBhcmFncmFwaCB0aGF0IHNob3VsZCByZWFsbHkgYmUgYSB0ZXJtPwogICAgICAgICAgICBpZiAoISAoKCRwYXJhZ3JhcGggPSAkZGVzY3JpcHRpb24tPnByZXZpb3VzKCkpIGluc3RhbmNlb2YgUGFyYWdyYXBoKSkgewogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIHBhcmFncmFwaCBpbnRvIG9uZSBvciBtb3JlIHRlcm1zCiAgICAgICAgICAgICR0ZXJtID0gbmV3IERlc2NyaXB0aW9uVGVybSgpOwogICAgICAgICAgICAkcGFyYWdyYXBoLT5yZXBsYWNlV2l0aCgkdGVybSk7CgogICAgICAgICAgICBmb3JlYWNoICgkcGFyYWdyYXBoLT5jaGlsZHJlbigpIGFzICRjaGlsZCkgewogICAgICAgICAgICAgICAgaWYgKCRjaGlsZCBpbnN0YW5jZW9mIE5ld2xpbmUpIHsKICAgICAgICAgICAgICAgICAgICAkbmV3VGVybSA9IG5ldyBEZXNjcmlwdGlvblRlcm0oKTsKICAgICAgICAgICAgICAgICAgICAkdGVybS0+aW5zZXJ0QWZ0ZXIoJG5ld1Rlcm0pOwogICAgICAgICAgICAgICAgICAgICR0ZXJtID0gJG5ld1Rlcm07CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJHRlcm0tPmFwcGVuZENoaWxkKCRjaGlsZCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGRvY0Jsb2NrIjtOO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbWV0YWRhdGEiO2E6MDp7fX0=";