1789595936
c05b9b66eacc8e11cfd97f370d355f8b-phpdoc%3A8a4fcd5ac0cfe7582498851fba3d252f-1a99ac6afd65e930b76d6de8856e0ac1
s:18736:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjEzOiJib290c3RyYXAucGhwIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YToxOntzOjQ6IlxSSUQiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQiOjEwOntzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDoiXFJJRCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjM6IlJJRCI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGRvY0Jsb2NrIjtOO3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHZhbHVlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24iOjI6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AZXhwcmVzc2lvbiI7czoyNjoiXGJpbjJoZXgoXHJhbmRvbV9ieXRlcyg0KSkiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AcGFydHMiO2E6MDp7fX1zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDb25zdGFudABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AHR5cGUiO047czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ29uc3RhbnQAbWV0YWRhdGEiO2E6MDp7fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENvbnN0YW50AGF0dHJpYnV0ZXMiO2E6MDp7fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e31zOjQwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGVudW1zIjthOjA6e31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6IjFhOTlhYzZhZmQ2NWU5MzBiNzZkNmRlODg1NmUwYWMxIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6MjE6ImJhY2tlbmQvYm9vdHN0cmFwLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6OTg5NjoiPD9waHAKLyoqCiAqIEJvb3RzdHJhcCBkZWwgcHJvZ3JhbWEKICogLSDDmm5pY28gcHVudG8gZGUgaW5jbHVkZSBkZSBhcmNoaXZvcwogKiAtIMOabmljbyBwdW50byBkZSBpbmljaW8gZGUgc2VzacOzbgogKgogKiBDb250cm9sYSBlbCBuaXZlbCBkZSBleGNlcGNpw7NuIHkgZGUgcmVwb3J0ZS4KICoKICogT1JERU4gSU1QT1JUQU5URS4gTGFzIHNlY2Npb25lcyBlc3TDoW4gb3JkZW5hZGFzIHBvciBkZXBlbmRlbmNpYToKICogICAxLiBDb25maWd1cmFjacOzbiBkZSBlcnJvcmVzICDihpIgYW50ZXMgZGUgY3VhbHF1aWVyIHJlcXVpcmUsIHBhcmEgcXVlIHVuCiAqICAgICAgYXZpc28gZHVyYW50ZSBsYSBjYXJnYSBubyBzZSBpbXByaW1hIGRlbGFudGUgZGVsIEpTT04uCiAqICAgMi4gSWRlbnRpZmljYWRvciBkZSBjb3JyZWxhY2nDs24uCiAqICAgMy4gUmVkIGRlIGZhdGFsZXMgICAgICAgICAgICDihpIgYW50ZXMgZGUgcmVnaXN0cmFyIGN1YWxxdWllciBvdHJvCiAqICAgICAgc2h1dGRvd246IHNlIGVqZWN1dGFuIGVuIG9yZGVuIGRlIHJlZ2lzdHJvLCB5IHNpIGNsb3NlQWxsKCkgZW1pdGllcmEKICogICAgICB1biBhdmlzbyBkdXJhbnRlIGVsIGFwYWdhZG8sIGVycm9yX2dldF9sYXN0KCkgeWEgaGFicsOtYSBjYW1iaWFkby4KICogICA0LiBTZXNpw7NuICAgICAgICAgICAgICAgICAgICDihpIgY29uZmlndXJhZGEgYW50ZXMgZGUgYXJyYW5jYXJsYS4KICogICA1LiBDYXJnYSBkZSBjbGFzZXMuCiAqCiAqIEBwYWNrYWdlIHRyYWNraW5nXGJhY2tlbmQKICovCmRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwoKLy8g4pSA4pSAIDEuIEVSUk9SRVMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSACmluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgJzAnKTsKaW5pX3NldCgnbG9nX2Vycm9ycycsICcxJyk7CmVycm9yX3JlcG9ydGluZyhFX0FMTCk7CgppZiAob2JfZ2V0X2xldmVsKCkgPT09IDApIG9iX3N0YXJ0KCk7CgovLyDilIDilIAgMi4gSURFTlRJRklDQURPUiBERSBDT1JSRUxBQ0nDk04g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSACi8qKgogKiBJZGVudGlmaWNhIHVuYSBwZXRpY2nDs24gZW4gZWwgbG9nIHkgZW4gbGFzIHJlc3B1ZXN0YXMgZGUgZXJyb3IsIGRlIG1vZG8KICogcXVlIHVuIHVzdWFyaW8gcXVlIHJlcG9ydGEgdW4gZmFsbG8gcHVlZGUgY2l0YXIgbGEgcmVmZXJlbmNpYSB5IHNlCiAqIGxvY2FsaXphIHN1IGzDrW5lYSBleGFjdGEuCiAqCiAqIFNlIGRlZmluZSBhcXXDrSB5IG5vIGVuIGxhIEFQSSBwb3JxdWUgbGEgcmVkIGRlIGZhdGFsZXMsIHF1ZSB0YW1iacOpbiBsbwogKiB1c2EsIHZpdmUgZW4gZXN0ZSBhcmNoaXZvLgogKi8KaWYgKCFkZWZpbmVkKCdSSUQnKSkgewogICAgZGVmaW5lKCdSSUQnLCBiaW4yaGV4KHJhbmRvbV9ieXRlcyg0KSkpOwp9CgovLyDilIDilIAgMy4gUkVEIERFIFNFR1VSSURBRCBQQVJBIEVSUk9SRVMgRkFUQUxFUyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAKLyoqCiAqIFVuIGZhdGFsIChPT00sIHRpbWVvdXQsIHBhcnNlIGVycm9yKSBubyBsbyBjYXB0dXJhIG5pbmfDum4gdHJ5L2NhdGNoLiBTaW4KICogZXN0bywgdW4gY2xpZW50ZSBkZSBsYSBBUEkgcmVjaWJpcsOtYSBIVE1MIG8gdW4gY3VlcnBvIHZhY8OtbyB5IHJvbXBlcsOtYSBhbAogKiBwYXJzZWFyLgogKgogKiBTb2xvIHJlc3BvbmRlIGVuIEpTT04gY3VhbmRvIGxhIHBldGljacOzbiB2aWVuZSBkZSBsYSBBUEk6IGVuIENMSSBlc2NyaWJlCiAqIHBvciBTVERFUlIsIHkgZW4gbGFzIHDDoWdpbmFzIHdlYiBubyBpbnRlcmZpZXJlIGNvbiBlbCBIVE1MIHlhIGVtaXRpZG8uCiAqLwpyZWdpc3Rlcl9zaHV0ZG93bl9mdW5jdGlvbihzdGF0aWMgZnVuY3Rpb24gKCk6IHZvaWQgewogICAgJGUgPSBlcnJvcl9nZXRfbGFzdCgpOwogICAgaWYgKCRlID09PSBudWxsKSByZXR1cm47CgogICAgJGZhdGFsZXMgPSBFX0VSUk9SIHwgRV9QQVJTRSB8IEVfQ09SRV9FUlJPUiB8IEVfQ09NUElMRV9FUlJPUiB8IEVfVVNFUl9FUlJPUjsKICAgIGlmICghKCRlWyd0eXBlJ10gJiAkZmF0YWxlcykpIHJldHVybjsKCiAgICAvLyBDTEkgKHNjcmlwdHMgZGUgbWFudGVuaW1pZW50bywgdmVyaWZpY2FjacOzbik6IG1lbnNhamUgbGVnaWJsZSwgc2luIEpTT04KICAgIC8vIG5pIGNhYmVjZXJhcyBIVFRQIHBvciBTVERPVVQuCiAgICBpZiAoUEhQX1NBUEkgPT09ICdjbGknICYmIHNlc3Npb25fc3RhdHVzKCkgPT09IFBIUF9TRVNTSU9OX05PTkUpIHsKICAgICAgICBmd3JpdGUoU1RERVJSLCAiRkFUQUw6IHskZVsnbWVzc2FnZSddfSBAIHskZVsnZmlsZSddfTp7JGVbJ2xpbmUnXX1cbiIpOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBlcnJvcl9sb2coJ1tGQVRBTF1bJyAuIFJJRCAuICJdIHskZVsnbWVzc2FnZSddfSBAIHskZVsnZmlsZSddfTp7JGVbJ2xpbmUnXX0iKTsKCiAgICAvLyBGdWVyYSBkZSBsYSBBUEkgc29uIHDDoWdpbmFzIEhUTUw6IHN1c3RpdHVpcmxhcyBwb3IgdW4gSlNPTiBkZWphcsOtYSBhbAogICAgLy8gbmF2ZWdhZG9yIG1vc3RyYW5kbyBlbCBvYmpldG8gZW4gY3J1ZG8uCiAgICBpZiAoIWRlZmluZWQoJ0NPTlRFWFRPX0FQSScpKSByZXR1cm47CgogICAgaWYgKGhlYWRlcnNfc2VudCgpKSByZXR1cm47CgogICAgd2hpbGUgKG9iX2dldF9sZXZlbCgpID4gMCkgb2JfZW5kX2NsZWFuKCk7CiAgICBodHRwX3Jlc3BvbnNlX2NvZGUoNTAwKTsKICAgIGhlYWRlcignQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04Jyk7CiAgICBoZWFkZXIoJ1gtQ29udGVudC1UeXBlLU9wdGlvbnM6IG5vc25pZmYnKTsKICAgIGVjaG8ganNvbl9lbmNvZGUoWwogICAgICAgICdvaycgICAgID0+IGZhbHNlLAogICAgICAgICdzdGF0dXMnID0+IDUwMCwKICAgICAgICAnZXJyb3InICA9PiAnRXJyb3IgZmF0YWwgZW4gZWwgc2Vydmlkb3IuIChyZWY6ICcgLiBSSUQgLiAnKScsCiAgICAgICAgJ2NvZGUnICAgPT4gJ0ZBVEFMJywKICAgIF0pOwp9KTsKCi8vIOKUgOKUgCA0LiBTRVNJw5NOIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgAovLyB1c2Vfc3RyaWN0X21vZGUgcmVjaGF6YSBpZGVudGlmaWNhZG9yZXMgZGUgc2VzacOzbiBubyBnZW5lcmFkb3MgcG9yIFBIUDoKLy8gc2luIMOpbCBlcyBwb3NpYmxlIGltcG9uZXIgdW4gU0lEIGNvbm9jaWRvIHkgZXNwZXJhciBhIHF1ZSBsYSB2w61jdGltYSBzZQovLyBhdXRlbnRpcXVlIGNvbiDDqWwgKGZpamFjacOzbiBkZSBzZXNpw7NuKS4KaW5pX3NldCgnc2Vzc2lvbi51c2Vfc3RyaWN0X21vZGUnLCAnMScpOwppbmlfc2V0KCdzZXNzaW9uLnVzZV9vbmx5X2Nvb2tpZXMnLCAnMScpOwoKLy8gRWwgcmVjb2xlY3RvciBkZWJlIHNvYnJldml2aXIgYWwgdGltZW91dCBkZSBpbmFjdGl2aWRhZCBkZSBsYSBhcGxpY2FjacOzbiwKLy8gbyBkZXN0cnVpcsOhIGVsIGZpY2hlcm8gYW50ZXMgeSBlbCB1c3VhcmlvIHNlIHZlcsOhIGV4cHVsc2FkbyBzaW4gbW90aXZvCi8vIGFwYXJlbnRlLgovLwovLyBBVklTTzogZW4gTGludXggY29uIFBIUCBkZSBwYXF1ZXRlIChEZWJpYW4vVWJ1bnR1KSBzdWVsZSB2ZW5pcgovLyBzZXNzaW9uLmdjX3Byb2JhYmlsaXR5PTAgeSBsYSBsaW1waWV6YSBsYSBoYWNlIHVuIGNyb24gcXVlIGxlZSBlbAovLyBwaHAuaW5pLCBOTyBlc3RlIGluaV9zZXQuIENvbXByb2JhciBjb246Ci8vICAgICBwaHAgLWkgfCBncmVwIC1FICdnY19wcm9iYWJpbGl0eXxnY19tYXhsaWZldGltZXxzYXZlX3BhdGgnCi8vIFNpIGdjX3Byb2JhYmlsaXR5IGVzIDAsIGZpamFybG8gZW4gcGhwLmluaSBvIGRhciBhIGxhIGFwbGljYWNpw7NuIHN1Ci8vIHByb3BpbyBzZXNzaW9uLnNhdmVfcGF0aC4KaW5pX3NldCgnc2Vzc2lvbi5nY19tYXhsaWZldGltZScsICcyNDAwJyk7CgovLyBMb3MgcGFyw6FtZXRyb3MgZGUgY29va2llIHNvbG8gcHVlZGVuIGZpamFyc2UgY29uIGxhIHNlc2nDs24gYcO6biBzaW4KLy8gYXJyYW5jYXI7IGhhY2VybG8gY29uIHVuYSBzZXNpw7NuIGFjdGl2YSBlbWl0ZSB1biBhdmlzbyB5IG5vIHN1cnRlIGVmZWN0by4KaWYgKHNlc3Npb25fc3RhdHVzKCkgPT09IFBIUF9TRVNTSU9OX05PTkUpIHsKICAgIHNlc3Npb25fc2V0X2Nvb2tpZV9wYXJhbXMoWwogICAgICAgICdsaWZldGltZScgPT4gMCwKICAgICAgICAncGF0aCcgICAgID0+ICcvJywKICAgICAgICAvLyBDb25kaWNpb25hbCBhIHByb3DDs3NpdG86IHVuICdzZWN1cmUnIGluY29uZGljaW9uYWwgc29icmUgSFRUUAogICAgICAgIC8vIHBsYW5vIGltcGVkaXLDrWEgcXVlIGxhIGNvb2tpZSB2aWFqYXJhIHkgbmFkaWUgcG9kcsOtYSBlbnRyYXIuCiAgICAgICAgLy8gRmlqYXIgYSB0cnVlIGN1YW5kbyBzZSBjb25maXJtZSBIVFRQUyBlbiB0b2RvcyBsb3MgZW50b3Jub3MuCiAgICAgICAgJ3NlY3VyZScgICA9PiAoKCRfU0VSVkVSWydIVFRQUyddID8/ICcnKSAhPT0gJycgJiYgJF9TRVJWRVJbJ0hUVFBTJ10gIT09ICdvZmYnKSwKICAgICAgICAnaHR0cG9ubHknID0+IHRydWUsCiAgICAgICAgLy8gU2VndW5kYSBiYXJyZXJhIGNvbnRyYSBDU1JGLCBjb21wbGVtZW50YXJpYSBhbCB0b2tlbiBzaW5jcm9uaXphZG9yLgogICAgICAgICdzYW1lc2l0ZScgPT4gJ0xheCcsCiAgICBdKTsKCiAgICBzZXNzaW9uX3N0YXJ0KCk7Cn0KCi8vIOKUgOKUgCA1LiBDT05FWElPTkVTIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgApyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvY29uZXhpb24ucGhwJzsKCi8vIFJlZ2lzdHJhZG8gREVTUFXDiVMgZGUgbGEgcmVkIGRlIGZhdGFsZXM6IGxvcyBzaHV0ZG93biBzZSBlamVjdXRhbiBlbiBvcmRlbgovLyBkZSByZWdpc3RybyB5IGVzdGUgbm8gZGViZSBhbHRlcmFyIGVycm9yX2dldF9sYXN0KCkgYW50ZXMgcXVlIGFxdcOpbGxhLgpyZWdpc3Rlcl9zaHV0ZG93bl9mdW5jdGlvbihzdGF0aWMgZnVuY3Rpb24gKCk6IHZvaWQgewogICAgdHJ5IHsKICAgICAgICBDb25leGlvbjo6Y2xvc2VBbGwoKTsKICAgIH0gY2F0Y2ggKFRocm93YWJsZSAkZSkgewogICAgICAgIGVycm9yX2xvZygnW2Jvb3RzdHJhcF1bJyAuIFJJRCAuICddIEVycm9yIGFsIGNlcnJhciBjb25leGlvbmVzOiAnIC4gJGUtPmdldE1lc3NhZ2UoKSk7CiAgICB9Cn0pOwoKLy8g4pSA4pSAIDYuIEFVVE9MT0FERVIgWSBFTlRPUk5PIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgApyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvdmVuZG9yL2F1dG9sb2FkLnBocCc7CgokZG90ZW52ID0gRG90ZW52XERvdGVudjo6Y3JlYXRlSW1tdXRhYmxlKF9fRElSX18pOwokZG90ZW52LT5sb2FkKCk7CiRkb3RlbnYtPnJlcXVpcmVkKFsnREJfSE9TVCcsICdEQl9OQU1FX05FVycsICdEQl9VU0VSJywgJ0RCX1BBU1MnLCAnTUFTVEVSX0tFWSddKTsKCi8vIOKUgOKUgCA3LiBOw5pDTEVPIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgApyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvdXRpbHMvQ3J5cHRvLnBocCc7CnJlcXVpcmVfb25jZSBfX0RJUl9fIC4gJy91dGlscy9Dc3JmLnBocCc7CnJlcXVpcmVfb25jZSBfX0RJUl9fIC4gJy91dGlscy9hdXRoX2d1YXJkLnBocCc7CgovLyDigJTigJQgTU9ERUxPUyDigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJTigJQKcmVxdWlyZV9vbmNlIF9fRElSX18gLiAnL21vZGVsb3MvQ29uZXhpb25Db25maWcucGhwJzsKcmVxdWlyZV9vbmNlIF9fRElSX18gLiAnL21vZGVsb3MvQ2FtcGFuaWEucGhwJzsKcmVxdWlyZV9vbmNlIF9fRElSX18gLiAnL21vZGVsb3MvcHJvdmVlZG9ybWF0cmljdWxhLnBocCc7CnJlcXVpcmVfb25jZSBfX0RJUl9fIC4gJy9tb2RlbG9zL3RyYXNpZWdvLnBocCc7CnJlcXVpcmVfb25jZSBfX0RJUl9fIC4gJy9tb2RlbG9zL211ZXN0cmFBY2VpdGUucGhwJzsKCi8vIOKAlOKAlCBEQU9TIOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlOKAlApyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvZGFvL0NvbmV4aW9uQ29uZmlnRGFvLnBocCc7CnJlcXVpcmVfb25jZSBfX0RJUl9fIC4gJy9kYW8vUGVybWlzb3NEYW8ucGhwJzsKcmVxdWlyZV9vbmNlIF9fRElSX18gLiAnL2Rhby9jYW1wYW5pYURhby5waHAnOwpyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvZGFvL1Byb3ZlZWRvckRhby5waHAnOwpyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvZGFvL3ZPcmdhbmljb0Rhby5waHAnOwpyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvZGFvL0ZpbHRyYWRvc0Rhby5waHAnOwpyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvZGFvL0NhdGVnb3JpYXNEYW8ucGhwJzsKcmVxdWlyZV9vbmNlIF9fRElSX18gLiAnL2Rhby9wYWdpbmFzRGFvLnBocCc7CnJlcXVpcmVfb25jZSBfX0RJUl9fIC4gJy9kYW8vUGFydGlkYUVudHJhZGFEYW8ucGhwJzsKcmVxdWlyZV9vbmNlIF9fRElSX18gLiAnL2Rhby9QYXJ0aWRhU2FsaWRhRGFvLnBocCc7CnJlcXVpcmVfb25jZSBfX0RJUl9fIC4gJy9kYW8vVHJhc2llZ29EYW8ucGhwJzsKcmVxdWlyZV9vbmNlIF9fRElSX18gLiAnL2Rhby9EZXBvc2l0b0Rhby5waHAnOwpyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvZGFvL01hdHJpY3VsYVByb3ZlZWRvckRhby5waHAnOwpyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvZGFvL01hdHJpY3VsYUNsaWVudGVEYW8ucGhwJzsKcmVxdWlyZV9vbmNlIF9fRElSX18gLiAnL2Rhby9Cb2RlZ2FEYW8ucGhwJzsKcmVxdWlyZV9vbmNlIF9fRElSX18gLiAnL2Rhby9TdWJ0aXBvUHJpbWFyaW9EYW8ucGhwJzsKcmVxdWlyZV9vbmNlIF9fRElSX18gLiAnL2Rhby9QZXNhZGFEYW8ucGhwJzsKcmVxdWlyZV9vbmNlIF9fRElSX18gLiAnL2Rhby9BY2VpdGVEYW8ucGhwJzsKcmVxdWlyZV9vbmNlIF9fRElSX18gLiAnL2Rhby9Db25maWdEYW8ucGhwJzsKcmVxdWlyZV9vbmNlIF9fRElSX18gLiAnL2Rhby9QYXJ0aWRhc1Byb2NEYW8ucGhwJzsKCi8vIOKUgOKUgCBDT05UUk9MQURPUkVTIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgApyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvY29udHJvbGFkb3Jlcy9jb250cm9sYWRvclVzZXJzLnBocCc7CnJlcXVpcmVfb25jZSBfX0RJUl9fIC4gJy9jb250cm9sYWRvcmVzL0NvbnRyb2xhZG9yUGVybWlzb3MucGhwJzsKcmVxdWlyZV9vbmNlIF9fRElSX18gLiAnL2NvbnRyb2xhZG9yZXMvQ29udHJvbGFkb3JDb25leGlvbmVzLnBocCc7CnJlcXVpcmVfb25jZSBfX0RJUl9fIC4gJy9jb250cm9sYWRvcmVzL0NvbnRyb2xhZG9yQ2FtcGFuaWFzLnBocCc7CnJlcXVpcmVfb25jZSBfX0RJUl9fIC4gJy9jb250cm9sYWRvcmVzL2NvbnRyb2xhZG9yUmVuZGltaWVudG8ucGhwJzsKcmVxdWlyZV9vbmNlIF9fRElSX18gLiAnL2NvbnRyb2xhZG9yZXMvY29udHJvbGFkb3JEZXBvc2l0by5waHAnOwpyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvY29udHJvbGFkb3Jlcy9jb250cm9sYWRvckNsaWVudGVzLnBocCc7CnJlcXVpcmVfb25jZSBfX0RJUl9fIC4gJy9jb250cm9sYWRvcmVzL0NvbnRyb2xhZG9yUHJvdmVlZG9yLnBocCc7CnJlcXVpcmVfb25jZSBfX0RJUl9fIC4gJy9jb250cm9sYWRvcmVzL0NvbnRyb2xhZG9yVk9yZ2FuaWNvLnBocCc7CnJlcXVpcmVfb25jZSBfX0RJUl9fIC4gJy9jb250cm9sYWRvcmVzL0NvbnRyb2xhZG9yRmlsdHJhZG9zLnBocCc7CnJlcXVpcmVfb25jZSBfX0RJUl9fIC4gJy9jb250cm9sYWRvcmVzL0NvbnRyb2xhZG9yQ2F0ZWdvcmlhcy5waHAnOwpyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvY29udHJvbGFkb3Jlcy9Db250cm9sYWRvclBhZ2luYXMucGhwJzsKcmVxdWlyZV9vbmNlIF9fRElSX18gLiAnL2NvbnRyb2xhZG9yZXMvQ29udHJvbGFkb3JQYXJ0aWRhc0VTVC5waHAnOwpyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvY29udHJvbGFkb3Jlcy9Db250cm9sYWRvck1hdHJpY3VsYVByb3ZlZWRvci5waHAnOwpyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvY29udHJvbGFkb3Jlcy9Db250cm9sYWRvckVudHJhZGFzLnBocCc7CnJlcXVpcmVfb25jZSBfX0RJUl9fIC4gJy9jb250cm9sYWRvcmVzL0NvbnRyb2xhZG9yU2FsaWRhcy5waHAnOwpyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvY29udHJvbGFkb3Jlcy9Db250cm9sYWRvclRyYXNpZWdvcy5waHAnOwpyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvY29udHJvbGFkb3Jlcy9Db250cm9sYWRvckJvZGVnYS5waHAnOwpyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvY29udHJvbGFkb3Jlcy9Db250cm9sYWRvclBlc2FkYS5waHAnOwpyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvY29udHJvbGFkb3Jlcy9Db250cm9sYWRvckFjZWl0ZS5waHAnOwpyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvY29udHJvbGFkb3Jlcy9Db250cm9sYWRvckNvbmZpZy5waHAnOwpyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvY29udHJvbGFkb3Jlcy9Db250cm9sYWRvclBhcnRpZGFzUHJvYy5waHAnOwpyZXF1aXJlX29uY2UgX19ESVJfXyAuICcvY29udHJvbGFkb3Jlcy9Db250cm9sYWRvclN1YnRpcG9QcmltYXJpby5waHAnOwoiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjk2OiJCb290c3RyYXAgZGVsIHByb2dyYW1hCi0gw5puaWNvIHB1bnRvIGRlIGluY2x1ZGUgZGUgYXJjaGl2b3MKLSDDmm5pY28gcHVudG8gZGUgaW5pY2lvIGRlIHNlc2nDs24iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NTkwOiJDb250cm9sYSBlbCBuaXZlbCBkZSBleGNlcGNpw7NuIHkgZGUgcmVwb3J0ZS4KCk9SREVOIElNUE9SVEFOVEUuIExhcyBzZWNjaW9uZXMgZXN0w6FuIG9yZGVuYWRhcyBwb3IgZGVwZW5kZW5jaWE6CiAgMS4gQ29uZmlndXJhY2nDs24gZGUgZXJyb3JlcyAg4oaSIGFudGVzIGRlIGN1YWxxdWllciByZXF1aXJlLCBwYXJhIHF1ZSB1bgogICAgIGF2aXNvIGR1cmFudGUgbGEgY2FyZ2Egbm8gc2UgaW1wcmltYSBkZWxhbnRlIGRlbCBKU09OLgogIDIuIElkZW50aWZpY2Fkb3IgZGUgY29ycmVsYWNpw7NuLgogIDMuIFJlZCBkZSBmYXRhbGVzICAgICAgICAgICAg4oaSIGFudGVzIGRlIHJlZ2lzdHJhciBjdWFscXVpZXIgb3RybwogICAgIHNodXRkb3duOiBzZSBlamVjdXRhbiBlbiBvcmRlbiBkZSByZWdpc3RybywgeSBzaSBjbG9zZUFsbCgpIGVtaXRpZXJhCiAgICAgdW4gYXZpc28gZHVyYW50ZSBlbCBhcGFnYWRvLCBlcnJvcl9nZXRfbGFzdCgpIHlhIGhhYnLDrWEgY2FtYmlhZG8uCiAgNC4gU2VzacOzbiAgICAgICAgICAgICAgICAgICAg4oaSIGNvbmZpZ3VyYWRhIGFudGVzIGRlIGFycmFuY2FybGEuCiAgNS4gQ2FyZ2EgZGUgY2xhc2VzLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoicGFja2FnZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTY6InRyYWNraW5nXGJhY2tlbmQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czowOiIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjA6e319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG1ldGFkYXRhIjthOjA6e319";