diff --git a/runtime/history/SIGNALBOT-260921-SCIENTIFIC-WORKTREE-LOCATOR-052FIXPREP4.json b/runtime/history/SIGNALBOT-260921-SCIENTIFIC-WORKTREE-LOCATOR-052FIXPREP4.json new file mode 100644 index 00000000..c1c6e9af --- /dev/null +++ b/runtime/history/SIGNALBOT-260921-SCIENTIFIC-WORKTREE-LOCATOR-052FIXPREP4.json @@ -0,0 +1,38 @@ +{ + "schema_version": 1, + "channel": "homelab-runtime", + "command_id": "SIGNALBOT-260921-SCIENTIFIC-WORKTREE-LOCATOR-052FIXPREP4", + "status": "OK", + "rc": 0, + "host": "pve01", + "mode": "read-only", + "component": "signalbot-scientific-worktree-locator", + "started_at_utc": "2026-09-21T03:30:03Z", + "finished_at_utc": "2026-09-21T03:30:05Z", + "reference_register_checked": true, + "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", + "error_register_checked": true, + "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", + "command_sha256": "a095e90fd39c4a8ad0bbba63be2f63797141fb14b1fd9504f1f6eb5eda69f80f", + "duplicate_failed_command_blocked": false, + "block_reason": null, + "execution_started": true, + "change_declared": false, + "result_contract_valid": true, + "result_contract_status": null, + "result_contract_error": null, + "command_rc": 0, + "changes_made": false, + "rollback_started": false, + "rollback_restored": null, + "mutation_outcome": "NO_MUTATION", + "sanitized": true, + "secrets_included": false, + "private_addresses_included": false, + "raw_evidence_retained_locally": true, + "raw_evidence_sha256": "3b4b7ab400d03a8fdde3af47e70ee3030eb3a125afb347ec3acf021bb70d89e5", + "sanitized_output_sha256": "3b4b7ab400d03a8fdde3af47e70ee3030eb3a125afb347ec3acf021bb70d89e5", + "output_truncated_in_json": false, + "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", + "output": "SIGNALBOT052FIXPREP4_RESULT={\"exact_match_count\":1,\"items\":[{\"branch\":\"cr-2026-0105-demonov-shadow-orchestrator\",\"clean\":true,\"git\":true,\"head\":\"559948bcb6baead49a47d9953b0cc0090e332fd7\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot\",\"source_match\":false},{\"branch\":\"signalbot-260917-reconnect-reconciliation\",\"clean\":true,\"git\":true,\"head\":\"749073ae0f894debc06fb0ffbf7a84abf9da531f\",\"head_match\":true,\"path\":\"/root/.local/share/signalbot-dev/signalbot-260917-reconnect-reconciliation\",\"source\":{\"bytes\":12078,\"sha256\":\"023ce0a041b50b866a48d9f752bd80479a34789d82f73c81d18246ed8871ef8e\"},\"source_match\":true,\"test\":{\"bytes\":10463,\"sha256\":\"bebdd9c2875d2c63a0ac27d89eefa7f1c36c83c067aa8b472c0616ac470dd2a2\"}},{\"branch\":\"cr-2026-0106-projection-node-binding\",\"clean\":true,\"git\":true,\"head\":\"bc2570f71c69140acd0a80e25e6d82d2d4adc4f4\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0106\",\"source_match\":false},{\"branch\":\"cr-2026-0107-production-8020-producer\",\"clean\":true,\"git\":true,\"head\":\"3d59766ee08181e3124e6e86e48421f1aa3a2635\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0107\",\"source_match\":false},{\"branch\":\"cr-2026-0108-durable-producer-outbox\",\"clean\":true,\"git\":true,\"head\":\"9fe67eaaf80009899e45ae31096ba5d307cfde4c\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0108\",\"source_match\":false},{\"branch\":\"cr-2026-0109-outbox-shadow-delivery\",\"clean\":true,\"git\":true,\"head\":\"578e6d40822469b89a29aede4d01e32628744450\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0109\",\"source_match\":false},{\"branch\":\"cr-2026-0110-shadow-deployment\",\"clean\":true,\"git\":true,\"head\":\"59b226007bc3b506c9ab9ac5d1ad10745062e557\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0110\",\"source_match\":false},{\"branch\":\"cr-2026-0111-technical-shadow-seal\",\"clean\":true,\"git\":true,\"head\":\"c7fd5428eb0d535905468c5989f28ce0444c2c01\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0111\",\"source_match\":false},{\"branch\":\"cr-2026-0112-live-prospective-policy\",\"clean\":true,\"git\":true,\"head\":\"c9a88e1953b1f82554ad363dce814cf84507ce65\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0112\",\"source_match\":false},{\"branch\":\"cr-2026-0113-multiarm-fsm-market-registry\",\"clean\":true,\"git\":true,\"head\":\"4e302a6b7ec50966e303e034bbf8d31a577753bd\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0113\",\"source_match\":false},{\"branch\":\"cr-2026-0114-live-feeds-russian-email\",\"clean\":true,\"git\":true,\"head\":\"5a8a0db00c095e1427b3c17cbb9f7c683cd5c014\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0114\",\"source_match\":false},{\"branch\":\"cr-2026-0115-live-prospective-cutover\",\"clean\":true,\"git\":true,\"head\":\"18132ee2a0f70a7bc319e51d197ff99184a7961a\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0115\",\"source_match\":false},{\"branch\":\"cr-2026-0116-reliability-finality\",\"clean\":true,\"deployer\":{\"bytes\":31515,\"sha256\":\"3ca98e06c9ca24ed0e2e96a8b882a2f9c66451f31b7429faff56c241ec700a20\"},\"git\":true,\"head\":\"ac7094a76ddc06f376d71a76432af7c2dd10ec7d\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0116\",\"source_match\":false},{\"branch\":\"research/cr0117-signal-quality-roadmap-20260902\",\"clean\":true,\"git\":true,\"head\":\"d33cb4efc544a96b8bbb46bed1590413cca14628\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0117-roadmap\",\"source_match\":false},{\"branch\":\"docs-signal-bot-roadmap-cr0116-cr0119\",\"clean\":true,\"git\":true,\"head\":\"39d3b6af08621f1ad9749a24fc54bc022b3ad9be\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-roadmap\",\"source_match\":false}],\"matches\":[{\"branch\":\"signalbot-260917-reconnect-reconciliation\",\"clean\":true,\"git\":true,\"head\":\"749073ae0f894debc06fb0ffbf7a84abf9da531f\",\"head_match\":true,\"path\":\"/root/.local/share/signalbot-dev/signalbot-260917-reconnect-reconciliation\",\"source\":{\"bytes\":12078,\"sha256\":\"023ce0a041b50b866a48d9f752bd80479a34789d82f73c81d18246ed8871ef8e\"},\"source_match\":true,\"test\":{\"bytes\":10463,\"sha256\":\"bebdd9c2875d2c63a0ac27d89eefa7f1c36c83c067aa8b472c0616ac470dd2a2\"}}]}\nTASK_RESULT=PASS_SIGNALBOT_052FIXPREP4_EXACT_WORKTREE_PROVEN\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SIGNALBOT-260921-SCIENTIFIC-WORKTREE-LOCATOR-052FIXPREP4\",\"status\":\"OK\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\n" +} diff --git a/runtime/history/SIGNALBOT-260921-SCIENTIFIC-WORKTREE-LOCATOR-052FIXPREP4.txt b/runtime/history/SIGNALBOT-260921-SCIENTIFIC-WORKTREE-LOCATOR-052FIXPREP4.txt new file mode 100644 index 00000000..9b008083 --- /dev/null +++ b/runtime/history/SIGNALBOT-260921-SCIENTIFIC-WORKTREE-LOCATOR-052FIXPREP4.txt @@ -0,0 +1,35 @@ +CHAT_OUTPUT_BEGIN +COMMAND_ID=SIGNALBOT-260921-SCIENTIFIC-WORKTREE-LOCATOR-052FIXPREP4 +STATUS=OK +RC=0 +HOST=pve01 +MODE=read-only +COMPONENT=signalbot-scientific-worktree-locator +REFERENCE_REGISTER_CHECK=OK +REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 +ERROR_REGISTER_CHECK=OK +ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 +COMMAND_SHA256=a095e90fd39c4a8ad0bbba63be2f63797141fb14b1fd9504f1f6eb5eda69f80f +DUPLICATE_FAILED_COMMAND_BLOCKED=false +EXECUTION_STARTED=true +CHANGE_DECLARED=false +RESULT_CONTRACT_VALID=true +RESULT_CONTRACT_STATUS=NOT_APPLICABLE +RESULT_CONTRACT_ERROR=NONE +COMMAND_RC=0 +CHANGES_MADE=false +ROLLBACK_STARTED=false +ROLLBACK_RESTORED=null +MUTATION_OUTCOME=NO_MUTATION +SANITIZED=yes +SECRETS_INCLUDED=no +PRIVATE_ADDRESSES_INCLUDED=no +RAW_EVIDENCE_SHA256=3b4b7ab400d03a8fdde3af47e70ee3030eb3a125afb347ec3acf021bb70d89e5 +SANITIZED_OUTPUT_SHA256=3b4b7ab400d03a8fdde3af47e70ee3030eb3a125afb347ec3acf021bb70d89e5 +OUTPUT_BEGIN +SIGNALBOT052FIXPREP4_RESULT={"exact_match_count":1,"items":[{"branch":"cr-2026-0105-demonov-shadow-orchestrator","clean":true,"git":true,"head":"559948bcb6baead49a47d9953b0cc0090e332fd7","head_match":false,"path":"/root/8020-demonov-shadow-bot","source_match":false},{"branch":"signalbot-260917-reconnect-reconciliation","clean":true,"git":true,"head":"749073ae0f894debc06fb0ffbf7a84abf9da531f","head_match":true,"path":"/root/.local/share/signalbot-dev/signalbot-260917-reconnect-reconciliation","source":{"bytes":12078,"sha256":"023ce0a041b50b866a48d9f752bd80479a34789d82f73c81d18246ed8871ef8e"},"source_match":true,"test":{"bytes":10463,"sha256":"bebdd9c2875d2c63a0ac27d89eefa7f1c36c83c067aa8b472c0616ac470dd2a2"}},{"branch":"cr-2026-0106-projection-node-binding","clean":true,"git":true,"head":"bc2570f71c69140acd0a80e25e6d82d2d4adc4f4","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0106","source_match":false},{"branch":"cr-2026-0107-production-8020-producer","clean":true,"git":true,"head":"3d59766ee08181e3124e6e86e48421f1aa3a2635","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0107","source_match":false},{"branch":"cr-2026-0108-durable-producer-outbox","clean":true,"git":true,"head":"9fe67eaaf80009899e45ae31096ba5d307cfde4c","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0108","source_match":false},{"branch":"cr-2026-0109-outbox-shadow-delivery","clean":true,"git":true,"head":"578e6d40822469b89a29aede4d01e32628744450","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0109","source_match":false},{"branch":"cr-2026-0110-shadow-deployment","clean":true,"git":true,"head":"59b226007bc3b506c9ab9ac5d1ad10745062e557","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0110","source_match":false},{"branch":"cr-2026-0111-technical-shadow-seal","clean":true,"git":true,"head":"c7fd5428eb0d535905468c5989f28ce0444c2c01","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0111","source_match":false},{"branch":"cr-2026-0112-live-prospective-policy","clean":true,"git":true,"head":"c9a88e1953b1f82554ad363dce814cf84507ce65","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0112","source_match":false},{"branch":"cr-2026-0113-multiarm-fsm-market-registry","clean":true,"git":true,"head":"4e302a6b7ec50966e303e034bbf8d31a577753bd","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0113","source_match":false},{"branch":"cr-2026-0114-live-feeds-russian-email","clean":true,"git":true,"head":"5a8a0db00c095e1427b3c17cbb9f7c683cd5c014","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0114","source_match":false},{"branch":"cr-2026-0115-live-prospective-cutover","clean":true,"git":true,"head":"18132ee2a0f70a7bc319e51d197ff99184a7961a","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0115","source_match":false},{"branch":"cr-2026-0116-reliability-finality","clean":true,"deployer":{"bytes":31515,"sha256":"3ca98e06c9ca24ed0e2e96a8b882a2f9c66451f31b7429faff56c241ec700a20"},"git":true,"head":"ac7094a76ddc06f376d71a76432af7c2dd10ec7d","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0116","source_match":false},{"branch":"research/cr0117-signal-quality-roadmap-20260902","clean":true,"git":true,"head":"d33cb4efc544a96b8bbb46bed1590413cca14628","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0117-roadmap","source_match":false},{"branch":"docs-signal-bot-roadmap-cr0116-cr0119","clean":true,"git":true,"head":"39d3b6af08621f1ad9749a24fc54bc022b3ad9be","head_match":false,"path":"/root/8020-demonov-shadow-bot-roadmap","source_match":false}],"matches":[{"branch":"signalbot-260917-reconnect-reconciliation","clean":true,"git":true,"head":"749073ae0f894debc06fb0ffbf7a84abf9da531f","head_match":true,"path":"/root/.local/share/signalbot-dev/signalbot-260917-reconnect-reconciliation","source":{"bytes":12078,"sha256":"023ce0a041b50b866a48d9f752bd80479a34789d82f73c81d18246ed8871ef8e"},"source_match":true,"test":{"bytes":10463,"sha256":"bebdd9c2875d2c63a0ac27d89eefa7f1c36c83c067aa8b472c0616ac470dd2a2"}}]} +TASK_RESULT=PASS_SIGNALBOT_052FIXPREP4_EXACT_WORKTREE_PROVEN +HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SIGNALBOT-260921-SCIENTIFIC-WORKTREE-LOCATOR-052FIXPREP4","status":"OK","changes_made":false,"rollback_started":false,"rollback_restored":null} + +OUTPUT_END +CHAT_OUTPUT_END diff --git a/runtime/latest.json b/runtime/latest.json index 20744a9f..c1c6e9af 100644 --- a/runtime/latest.json +++ b/runtime/latest.json @@ -1,19 +1,19 @@ { "schema_version": 1, "channel": "homelab-runtime", - "command_id": "NEWFI-260921-NEWFDOM-MEDICAL218-AUDIT345", - "status": "FAIL", - "rc": 3, + "command_id": "SIGNALBOT-260921-SCIENTIFIC-WORKTREE-LOCATOR-052FIXPREP4", + "status": "OK", + "rc": 0, "host": "pve01", "mode": "read-only", - "component": "newfi-medical218-transition-and-private-contract-audit", - "started_at_utc": "2026-09-21T03:29:44Z", - "finished_at_utc": "2026-09-21T03:29:45Z", + "component": "signalbot-scientific-worktree-locator", + "started_at_utc": "2026-09-21T03:30:03Z", + "finished_at_utc": "2026-09-21T03:30:05Z", "reference_register_checked": true, "reference_sha256": "5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66", "error_register_checked": true, "error_register_sha256": "3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0", - "command_sha256": "0f4ce3369883bd3815a3634b79848d947daeb32a0c1b3854fc257a7620dbeaf4", + "command_sha256": "a095e90fd39c4a8ad0bbba63be2f63797141fb14b1fd9504f1f6eb5eda69f80f", "duplicate_failed_command_blocked": false, "block_reason": null, "execution_started": true, @@ -21,7 +21,7 @@ "result_contract_valid": true, "result_contract_status": null, "result_contract_error": null, - "command_rc": 3, + "command_rc": 0, "changes_made": false, "rollback_started": false, "rollback_restored": null, @@ -30,9 +30,9 @@ "secrets_included": false, "private_addresses_included": false, "raw_evidence_retained_locally": true, - "raw_evidence_sha256": "4326c3e8885c82eedc3a50033bb56d55c749da569a1d76e1019924ebe8a5eae9", - "sanitized_output_sha256": "4326c3e8885c82eedc3a50033bb56d55c749da569a1d76e1019924ebe8a5eae9", + "raw_evidence_sha256": "3b4b7ab400d03a8fdde3af47e70ee3030eb3a125afb347ec3acf021bb70d89e5", + "sanitized_output_sha256": "3b4b7ab400d03a8fdde3af47e70ee3030eb3a125afb347ec3acf021bb70d89e5", "output_truncated_in_json": false, "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt", - "output": "MED345_BEGIN=true\nCOMMAND_ID=NEWFI-260921-NEWFDOM-MEDICAL218-AUDIT345\nIMMUTABLE_PLAN_CHECK=PASS\nAUTHORITY_SHA_MATCH=True\nGIT_STATE={\"branch\":\"implementation/newfi-closed-mvp-20260906\",\"clean\":true,\"head\":\"33b6f020b8c7bd6adc57f51c164ff028aadc62cc\",\"remote\":\"33b6f020b8c7bd6adc57f51c164ff028aadc62cc\",\"subject\":\"Newfi: add PEDIGREE217 pedigrees\"}\nSOURCE_TREE={\"captured\":{\"src/addons/Newfi/Dogs/Entity/Dog.php\":{\"b64\":\"PD9waHAKCm5hbWVzcGFjZSBOZXdmaVxEb2dzXEVudGl0eTsKCnVzZSBYRlxNdmNcRW50aXR5XEVudGl0eTsKdXNlIFhGXE12Y1xFbnRpdHlcU3RydWN0dXJlOwoKY2xhc3MgRG9nIGV4dGVuZHMgRW50aXR5CnsKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0U3RydWN0dXJlKFN0cnVjdHVyZSAkc3RydWN0dXJlKQogICAgewogICAgICAgICRzdHJ1Y3R1cmUtPnRhYmxlID0gJ3hmX25ld2ZpX2RvZyc7CiAgICAgICAgJHN0cnVjdHVyZS0+c2hvcnROYW1lID0gJ05ld2ZpXERvZ3M6RG9nJzsKICAgICAgICAkc3RydWN0dXJlLT5wcmltYXJ5S2V5ID0gJ2RvZ19pZCc7CiAgICAgICAgJHN0cnVjdHVyZS0+Y29sdW1ucyA9IFsKICAgICAgICAgICAgJ2RvZ19pZCcgPT4gWyd0eXBlJyA9PiBzZWxmOjpVSU5ULCAnYXV0b0luY3JlbWVudCcgPT4gdHJ1ZSwgJ251bGxhYmxlJyA9PiB0cnVlXSwKICAgICAgICAgICAgJ25hbWUnID0+IFsndHlwZScgPT4gc2VsZjo6U1RSLCAnbWF4TGVuZ3RoJyA9PiAxMDAsICdyZXF1aXJlZCcgPT4gdHJ1ZV0sCiAgICAgICAgICAgICdmdWxsX25hbWUnID0+IFsndHlwZScgPT4gc2VsZjo6U1RSLCAnbWF4TGVuZ3RoJyA9PiAyNTUsICdkZWZhdWx0JyA9PiAnJ10sCiAgICAgICAgICAgICdkYXRlX29mX2JpcnRoJyA9PiBbJ3R5cGUnID0+IHNlbGY6OlVJTlQsICdkZWZhdWx0JyA9PiAwXSwKICAgICAgICAgICAgJ3NleCcgPT4gWyd0eXBlJyA9PiBzZWxmOjpTVFIsICdtYXhMZW5ndGgnID0+IDIwLCAnZGVmYXVsdCcgPT4gJyddLAogICAgICAgICAgICAnY29sb3InID0+IFsndHlwZScgPT4gc2VsZjo6U1RSLCAnbWF4TGVuZ3RoJyA9PiAxMDAsICdkZWZhdWx0JyA9PiAnJ10sCiAgICAgICAgICAgICdjaXR5JyA9PiBbJ3R5cGUnID0+IHNlbGY6OlNUUiwgJ21heExlbmd0aCcgPT4gMTAwLCAnZGVmYXVsdCcgPT4gJyddLAogICAgICAgICAgICAncHJpbWFyeV9waG90b19tZWRpYV9pZCcgPT4gWyd0eXBlJyA9PiBzZWxmOjpVSU5ULCAnZGVmYXVsdCcgPT4gMF0sCiAgICAgICAgICAgICdvd25lcl91c2VyX2lkJyA9PiBbJ3R5cGUnID0+IHNlbGY6OlVJTlQsICdkZWZhdWx0JyA9PiAwXSwKICAgICAgICAgICAgJ2NyZWF0ZWRfYXQnID0+IFsndHlwZScgPT4gc2VsZjo6VUlOVCwgJ3JlcXVpcmVkJyA9PiB0cnVlXSwKICAgICAgICAgICAgJ3VwZGF0ZWRfYXQnID0+IFsndHlwZScgPT4gc2VsZjo6VUlOVCwgJ3JlcXVpcmVkJyA9PiB0cnVlXQogICAgICAgIF07CiAgICAgICAgcmV0dXJuICRzdHJ1Y3R1cmU7CiAgICB9Cn0K\",\"bytes\":1278,\"sha256\":\"2db869d37ef9a5f19c74e9e093504ce50313735400649f94046c48089c67996f\"},\"src/addons/Newfi/Dogs/Pub/Controller/Dogs.php\":{\"b64\":\"PD9waHAKCm5hbWVzcGFjZSBOZXdmaVxEb2dzXFB1YlxDb250cm9sbGVyOwoKdXNlIE5ld2ZpXERvZ3NcU2VydmljZVxEb2dQb2xpY3k7CnVzZSBYRlxQdWJcQ29udHJvbGxlclxBYnN0cmFjdENvbnRyb2xsZXI7CgpjbGFzcyBEb2dzIGV4dGVuZHMgQWJzdHJhY3RDb250cm9sbGVyCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBhY3Rpb25JbmRleCgpCiAgICB7CiAgICAgICAgJHEgPSB0cmltKChzdHJpbmcpJHRoaXMtPmZpbHRlcigncScsICdzdHInKSk7CiAgICAgICAgJHNleCA9IHRyaW0oKHN0cmluZykkdGhpcy0+ZmlsdGVyKCdzZXgnLCAnc3RyJykpOwogICAgICAgICRjb2xvciA9IHRyaW0oKHN0cmluZykkdGhpcy0+ZmlsdGVyKCdjb2xvcicsICdzdHInKSk7CgogICAgICAgICRmaW5kZXIgPSAkdGhpcy0+ZmluZGVyKCdOZXdmaVxEb2dzOkRvZycpCiAgICAgICAgICAgIC0+b3JkZXIoJ25hbWUnLCAnQVNDJykKICAgICAgICAgICAgLT5vcmRlcignZG9nX2lkJywgJ0FTQycpOwoKICAgICAgICBpZiAoJHEgIT09ICcnKQogICAgICAgIHsKICAgICAgICAgICAgJGZpbmRlci0+d2hlcmVPcihbCiAgICAgICAgICAgICAgICBbJ25hbWUnLCAnTElLRScsICRmaW5kZXItPmVzY2FwZUxpa2UoJHEsICclPyUnKV0sCiAgICAgICAgICAgICAgICBbJ2Z1bGxfbmFtZScsICdMSUtFJywgJGZpbmRlci0+ZXNjYXBlTGlrZSgkcSwgJyU/JScpXQogICAgICAgICAgICBdKTsKICAgICAgICB9CgogICAgICAgIGlmIChpbl9hcnJheSgkc2V4LCBbJ21hbGUnLCAnZmVtYWxlJywgJ3Vua25vd24nXSwgdHJ1ZSkpCiAgICAgICAgewogICAgICAgICAgICAkZmluZGVyLT53aGVyZSgnc2V4JywgJHNleCk7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgICRzZXggPSAnJzsKICAgICAgICB9CgogICAgICAgIGlmICgkY29sb3IgIT09ICcnKQogICAgICAgIHsKICAgICAgICAgICAgJGZpbmRlci0+d2hlcmUoJ2NvbG9yJywgJGNvbG9yKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkdGhpcy0+dmlldygnTmV3ZmlcRG9nczpEb2dzJywgJ25ld2ZpX2RvZ3MnLCBbCiAgICAgICAgICAgICdkb2dzJyA9PiAkZmluZGVyLT5mZXRjaCgxMDApLAogICAgICAgICAgICAnZmlsdGVycycgPT4gWydxJyA9PiAkcSwgJ3NleCcgPT4gJHNleCwgJ2NvbG9yJyA9PiAkY29sb3JdLAogICAgICAgICAgICAnY2FuQ3JlYXRlJyA9PiBEb2dQb2xpY3k6OmNhbkNyZWF0ZShcWEY6OnZpc2l0b3IoKSkKICAgICAgICBdKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWN0aW9uVmlldygpCiAgICB7CiAgICAgICAgJGRvZ0lkID0gKGludCkkdGhpcy0+ZmlsdGVyKCdkb2dfaWQnLCAndWludCcpOwogICAgICAgICRkb2cgPSAkdGhpcy0+ZW0oKS0+ZmluZCgnTmV3ZmlcRG9nczpEb2cnLCAkZG9nSWQpOwogICAgICAgIGlmICghJGRvZykKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bm90Rm91bmQoKTsKICAgICAgICB9CgogICAgICAgICR2aXNpdG9yID0gXFhGOjp2aXNpdG9yKCk7CiAgICAgICAgJGNhbkVkaXQgPSBEb2dQb2xpY3k6OmNhbkVkaXQoJGRvZywgJHZpc2l0b3IpOwogICAgICAgICRvd25lciA9IG51bGw7CiAgICAgICAgaWYgKCR2aXNpdG9yLT51c2VyX2lkICYmICRkb2ctPm93bmVyX3VzZXJfaWQpCiAgICAgICAgewogICAgICAgICAgICAkb3duZXIgPSAkdGhpcy0+ZW0oKS0+ZmluZCgnWEY6VXNlcicsIChpbnQpJGRvZy0+b3duZXJfdXNlcl9pZCk7CiAgICAgICAgfQoKICAgICAgICAkcHJpbWFyeVBob3RvID0gbnVsbDsKICAgICAgICBpZiAoJGRvZy0+cHJpbWFyeV9waG90b19tZWRpYV9pZCkKICAgICAgICB7CiAgICAgICAgICAgICRtZWRpYSA9ICR0aGlzLT5lbSgpLT5maW5kKCdYRk1HOk1lZGlhSXRlbScsIChpbnQpJGRvZy0+cHJpbWFyeV9waG90b19tZWRpYV9pZCk7CiAgICAgICAgICAgIGlmICgkbWVkaWEgJiYgJG1lZGlhLT5pc1Zpc2libGUoKSAmJiAkbWVkaWEtPmNhblZpZXcoKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJHN0cnVjdHVyZWQgPSAkbWVkaWEtPmdldFN0cnVjdHVyZWREYXRhKCk7CiAgICAgICAgICAgICAgICAkcHJpbWFyeVBob3RvID0gWwogICAgICAgICAgICAgICAgICAgICd0aXRsZScgPT4gKHN0cmluZykkbWVkaWEtPnRpdGxlLAogICAgICAgICAgICAgICAgICAgICd0aHVtYm5haWxfdXJsJyA9PiAoc3RyaW5nKSgkc3RydWN0dXJlZFsndGh1bWJuYWlsVXJsJ10gPz8gJycpLAogICAgICAgICAgICAgICAgICAgICdjb250ZW50X3VybCcgPT4gKHN0cmluZykoJHN0cnVjdHVyZWRbJ2NvbnRlbnRVcmwnXSA/PyAnJyksCiAgICAgICAgICAgICAgICAgICAgJ3VybCcgPT4gJHRoaXMtPmJ1aWxkTGluaygnY2Fub25pY2FsOm1lZGlhJywgJG1lZGlhKQogICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgICAgIGlmICgkcHJpbWFyeVBob3RvWyd0aHVtYm5haWxfdXJsJ10gPT09ICcnKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRwcmltYXJ5UGhvdG9bJ3RodW1ibmFpbF91cmwnXSA9ICRwcmltYXJ5UGhvdG9bJ2NvbnRlbnRfdXJsJ107CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkdGhpcy0+dmlldygnTmV3ZmlcRG9nczpEb2dzJywgJ25ld2ZpX2RvZ19wcm9maWxlJywgWwogICAgICAgICAgICAnZG9nJyA9PiAkZG9nLAogICAgICAgICAgICAnY2FuRWRpdCcgPT4gJGNhbkVkaXQsCiAgICAgICAgICAgICdvd25lcicgPT4gJG93bmVyLAogICAgICAgICAgICAncHJpbWFyeVBob3RvJyA9PiAkcHJpbWFyeVBob3RvLAogICAgICAgICAgICAnZGF0ZU9mQmlydGgnID0+ICRkb2ctPmRhdGVfb2ZfYmlydGggPyBnbWRhdGUoJ1ktbS1kJywgKGludCkkZG9nLT5kYXRlX29mX2JpcnRoKSA6ICcnCiAgICAgICAgXSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGFjdGlvbkFkZCgpCiAgICB7CiAgICAgICAgJHZpc2l0b3IgPSBcWEY6OnZpc2l0b3IoKTsKICAgICAgICBpZiAoIURvZ1BvbGljeTo6Y2FuQ3JlYXRlKCR2aXNpdG9yKSkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bm9QZXJtaXNzaW9uKCk7CiAgICAgICAgfQoKICAgICAgICAkZG9nID0gJHRoaXMtPmVtKCktPmNyZWF0ZSgnTmV3ZmlcRG9nczpEb2cnKTsKICAgICAgICAkZG9nLT5vd25lcl91c2VyX2lkID0gKGludCkkdmlzaXRvci0+dXNlcl9pZDsKICAgICAgICAkZG9nLT5zZXggPSAndW5rbm93bic7CgogICAgICAgIHJldHVybiAkdGhpcy0+dmlldygnTmV3ZmlcRG9nczpEb2dzJywgJ25ld2ZpX2RvZ19lZGl0JywgWwogICAgICAgICAgICAnZG9nJyA9PiAkZG9nLAogICAgICAgICAgICAnZGF0ZU9mQmlydGgnID0+ICcnCiAgICAgICAgXSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGFjdGlvbkVkaXQoKQogICAgewogICAgICAgICRkb2dJZCA9IChpbnQpJHRoaXMtPmZpbHRlcignZG9nX2lkJywgJ3VpbnQnKTsKICAgICAgICAkZG9nID0gJHRoaXMtPmVtKCktPmZpbmQoJ05ld2ZpXERvZ3M6RG9nJywgJGRvZ0lkKTsKICAgICAgICBpZiAoISRkb2cpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPm5vdEZvdW5kKCk7CiAgICAgICAgfQogICAgICAgIGlmICghRG9nUG9saWN5OjpjYW5FZGl0KCRkb2csIFxYRjo6dmlzaXRvcigpKSkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bm9QZXJtaXNzaW9uKCk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHRoaXMtPnZpZXcoJ05ld2ZpXERvZ3M6RG9ncycsICduZXdmaV9kb2dfZWRpdCcsIFsKICAgICAgICAgICAgJ2RvZycgPT4gJGRvZywKICAgICAgICAgICAgJ2RhdGVPZkJpcnRoJyA9PiAkZG9nLT5kYXRlX29mX2JpcnRoID8gZ21kYXRlKCdZLW0tZCcsIChpbnQpJGRvZy0+ZGF0ZV9vZl9iaXJ0aCkgOiAnJwogICAgICAgIF0pOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhY3Rpb25TYXZlKCkKICAgIHsKICAgICAgICAkdGhpcy0+YXNzZXJ0UG9zdE9ubHkoKTsKCiAgICAgICAgJHZpc2l0b3IgPSBcWEY6OnZpc2l0b3IoKTsKICAgICAgICAkZG9nSWQgPSAoaW50KSR0aGlzLT5maWx0ZXIoJ2RvZ19pZCcsICd1aW50Jyk7CiAgICAgICAgaWYgKCRkb2dJZCkKICAgICAgICB7CiAgICAgICAgICAgICRkb2cgPSAkdGhpcy0+ZW0oKS0+ZmluZCgnTmV3ZmlcRG9nczpEb2cnLCAkZG9nSWQpOwogICAgICAgICAgICBpZiAoISRkb2cpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bm90Rm91bmQoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIURvZ1BvbGljeTo6Y2FuRWRpdCgkZG9nLCAkdmlzaXRvcikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bm9QZXJtaXNzaW9uKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgaWYgKCFEb2dQb2xpY3k6OmNhbkNyZWF0ZSgkdmlzaXRvcikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bm9QZXJtaXNzaW9uKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGRvZyA9ICR0aGlzLT5lbSgpLT5jcmVhdGUoJ05ld2ZpXERvZ3M6RG9nJyk7CiAgICAgICAgICAgICRkb2ctPm93bmVyX3VzZXJfaWQgPSAoaW50KSR2aXNpdG9yLT51c2VyX2lkOwogICAgICAgICAgICAkZG9nLT5jcmVhdGVkX2F0ID0gdGltZSgpOwogICAgICAgIH0KCiAgICAgICAgJG5hbWUgPSB0cmltKChzdHJpbmcpJHRoaXMtPmZpbHRlcignbmFtZScsICdzdHInKSk7CiAgICAgICAgaWYgKCRuYW1lID09PSAnJykKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+ZXJyb3IoJ9Cj0LrQsNC20LjRgtC1INC40LzRjyDRgdC+0LHQsNC60LguJyk7CiAgICAgICAgfQoKICAgICAgICAkZnVsbE5hbWUgPSB0cmltKChzdHJpbmcpJHRoaXMtPmZpbHRlcignZnVsbF9uYW1lJywgJ3N0cicpKTsKICAgICAgICAkY29sb3IgPSB0cmltKChzdHJpbmcpJHRoaXMtPmZpbHRlcignY29sb3InLCAnc3RyJykpOwogICAgICAgICRjaXR5ID0gdHJpbSgoc3RyaW5nKSR0aGlzLT5maWx0ZXIoJ2NpdHknLCAnc3RyJykpOwogICAgICAgICRzZXggPSB0cmltKChzdHJpbmcpJHRoaXMtPmZpbHRlcignc2V4JywgJ3N0cicpKTsKICAgICAgICBpZiAoIWluX2FycmF5KCRzZXgsIFsnbWFsZScsICdmZW1hbGUnLCAndW5rbm93biddLCB0cnVlKSkKICAgICAgICB7CiAgICAgICAgICAgICRzZXggPSAndW5rbm93bic7CiAgICAgICAgfQoKICAgICAgICAkZGF0ZVRleHQgPSB0cmltKChzdHJpbmcpJHRoaXMtPmZpbHRlcignZGF0ZV9vZl9iaXJ0aCcsICdzdHInKSk7CiAgICAgICAgJGRhdGVPZkJpcnRoID0gMDsKICAgICAgICBpZiAoJGRhdGVUZXh0ICE9PSAnJykKICAgICAgICB7CiAgICAgICAgICAgICRkYXRlID0gXERhdGVUaW1lSW1tdXRhYmxlOjpjcmVhdGVGcm9tRm9ybWF0KCchWS1tLWQnLCAkZGF0ZVRleHQsIG5ldyBcRGF0ZVRpbWVab25lKCdVVEMnKSk7CiAgICAgICAgICAgIGlmICghJGRhdGUgfHwgJGRhdGUtPmZvcm1hdCgnWS1tLWQnKSAhPT0gJGRhdGVUZXh0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPmVycm9yKCfQlNCw0YLQsCDRgNC+0LbQtNC10L3QuNGPINC00L7Qu9C20L3QsCDQsdGL0YLRjCDQsiDRhNC+0YDQvNCw0YLQtSDQk9CT0JPQky3QnNCcLdCU0JQuJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGRhdGVPZkJpcnRoID0gJGRhdGUtPmdldFRpbWVzdGFtcCgpOwogICAgICAgIH0KCiAgICAgICAgJG1lZGlhSWQgPSAoaW50KSR0aGlzLT5maWx0ZXIoJ3ByaW1hcnlfcGhvdG9fbWVkaWFfaWQnLCAndWludCcpOwogICAgICAgIGlmICgkbWVkaWFJZCkKICAgICAgICB7CiAgICAgICAgICAgICRtZWRpYSA9ICR0aGlzLT5lbSgpLT5maW5kKCdYRk1HOk1lZGlhSXRlbScsICRtZWRpYUlkKTsKICAgICAgICAgICAgaWYgKCEkbWVkaWEgfHwgISRtZWRpYS0+aXNWaXNpYmxlKCkgfHwgISRtZWRpYS0+Y2FuVmlldygpIHx8IChpbnQpJG1lZGlhLT51c2VyX2lkICE9PSAoaW50KSRkb2ctPm93bmVyX3VzZXJfaWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+ZXJyb3IoJ9Ce0YHQvdC+0LLQvdGL0Lwg0YTQvtGC0L4g0LzQvtC20L3QviDQstGL0LHRgNCw0YLRjCDRgtC+0LvRjNC60L4g0LTQvtGB0YLRg9C/0L3QvtC1INC40LfQvtCx0YDQsNC20LXQvdC40LUg0LjQtyDQvNC10LTQuNCw0LPQsNC70LXRgNC10Lgg0LLQu9Cw0LTQtdC70YzRhtCwLicpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkZG9nLT5uYW1lID0gJG5hbWU7CiAgICAgICAgJGRvZy0+ZnVsbF9uYW1lID0gJGZ1bGxOYW1lOwogICAgICAgICRkb2ctPmRhdGVfb2ZfYmlydGggPSAkZGF0ZU9mQmlydGg7CiAgICAgICAgJGRvZy0+c2V4ID0gJHNleDsKICAgICAgICAkZG9nLT5jb2xvciA9ICRjb2xvcjsKICAgICAgICAkZG9nLT5jaXR5ID0gJGNpdHk7CiAgICAgICAgJGRvZy0+cHJpbWFyeV9waG90b19tZWRpYV9pZCA9ICRtZWRpYUlkOwogICAgICAgICRkb2ctPnVwZGF0ZWRfYXQgPSB0aW1lKCk7CiAgICAgICAgJGRvZy0+c2F2ZSgpOwoKICAgICAgICByZXR1cm4gJHRoaXMtPnJlZGlyZWN0KAogICAgICAgICAgICAkdGhpcy0+YnVpbGRMaW5rKCdkb2dzL3ZpZXcnLCBudWxsLCBbJ2RvZ19pZCcgPT4gJGRvZy0+ZG9nX2lkXSksCiAgICAgICAgICAgICfQn9GA0L7RhNC40LvRjCDRgdC+0LHQsNC60Lgg0YHQvtGF0YDQsNC90ZHQvS4nCiAgICAgICAgKTsKICAgIH0KfQo=\",\"bytes\":6860,\"sha256\":\"0d439de7fc579f6ceda188dc6436378b0dbddd52f8f2c2c3fe6bef6473d7742f\"},\"src/addons/Newfi/Dogs/Service/DogPolicy.php\":{\"b64\":\"PD9waHAKCm5hbWVzcGFjZSBOZXdmaVxEb2dzXFNlcnZpY2U7Cgp1c2UgTmV3ZmlcRG9nc1xFbnRpdHlcRG9nOwp1c2UgWEZcRW50aXR5XFVzZXI7CgpmaW5hbCBjbGFzcyBEb2dQb2xpY3kKewogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjYW5DcmVhdGUoVXNlciAkdmlzaXRvcik6IGJvb2wKICAgIHsKICAgICAgICByZXR1cm4gKGJvb2wpJHZpc2l0b3ItPnVzZXJfaWQ7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjYW5FZGl0KERvZyAkZG9nLCBVc2VyICR2aXNpdG9yKTogYm9vbAogICAgewogICAgICAgIGlmICghJHZpc2l0b3ItPnVzZXJfaWQpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gKGludCkkZG9nLT5vd25lcl91c2VyX2lkID09PSAoaW50KSR2aXNpdG9yLT51c2VyX2lkCiAgICAgICAgICAgIHx8IChib29sKSR2aXNpdG9yLT5pc19hZG1pbjsKICAgIH0KfQo=\",\"bytes\":488,\"sha256\":\"32fb9de560b2fe5df1473a869bf56c3bf9f7a29a5f78d5bf16ad82a39104bbfb\"},\"src/addons/Newfi/Dogs/Setup.php\":{\"b64\":\"PD9waHAKCm5hbWVzcGFjZSBOZXdmaVxEb2dzOwoKdXNlIFhGXEFkZE9uXEFic3RyYWN0U2V0dXA7CnVzZSBYRlxEYlxTY2hlbWFcQ3JlYXRlOwoKY2xhc3MgU2V0dXAgZXh0ZW5kcyBBYnN0cmFjdFNldHVwCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBpbnN0YWxsKGFycmF5ICRzdGVwUGFyYW1zID0gW10pCiAgICB7CiAgICAgICAgJHNtID0gJHRoaXMtPnNjaGVtYU1hbmFnZXIoKTsKCiAgICAgICAgJHNtLT5jcmVhdGVUYWJsZSgneGZfbmV3ZmlfZG9nJywgZnVuY3Rpb24gKENyZWF0ZSAkdGFibGUpCiAgICAgICAgewogICAgICAgICAgICAkdGFibGUtPmFkZENvbHVtbignZG9nX2lkJywgJ2ludCcpLT5hdXRvSW5jcmVtZW50KCk7CiAgICAgICAgICAgICR0YWJsZS0+YWRkQ29sdW1uKCduYW1lJywgJ3ZhcmNoYXInLCAxMDApOwogICAgICAgICAgICAkdGFibGUtPmFkZENvbHVtbignZnVsbF9uYW1lJywgJ3ZhcmNoYXInLCAyNTUpLT5zZXREZWZhdWx0KCcnKTsKICAgICAgICAgICAgJHRhYmxlLT5hZGRDb2x1bW4oJ2RhdGVfb2ZfYmlydGgnLCAnaW50JyktPnNldERlZmF1bHQoMCk7CiAgICAgICAgICAgICR0YWJsZS0+YWRkQ29sdW1uKCdzZXgnLCAndmFyYmluYXJ5JywgMjApLT5zZXREZWZhdWx0KCcnKTsKICAgICAgICAgICAgJHRhYmxlLT5hZGRDb2x1bW4oJ2NvbG9yJywgJ3ZhcmNoYXInLCAxMDApLT5zZXREZWZhdWx0KCcnKTsKICAgICAgICAgICAgJHRhYmxlLT5hZGRDb2x1bW4oJ2NpdHknLCAndmFyY2hhcicsIDEwMCktPnNldERlZmF1bHQoJycpOwogICAgICAgICAgICAkdGFibGUtPmFkZENvbHVtbigncHJpbWFyeV9waG90b19tZWRpYV9pZCcsICdpbnQnKS0+c2V0RGVmYXVsdCgwKTsKICAgICAgICAgICAgJHRhYmxlLT5hZGRDb2x1bW4oJ293bmVyX3VzZXJfaWQnLCAnaW50JyktPnNldERlZmF1bHQoMCk7CiAgICAgICAgICAgICR0YWJsZS0+YWRkQ29sdW1uKCdjcmVhdGVkX2F0JywgJ2ludCcpOwogICAgICAgICAgICAkdGFibGUtPmFkZENvbHVtbigndXBkYXRlZF9hdCcsICdpbnQnKTsKICAgICAgICAgICAgJHRhYmxlLT5hZGRQcmltYXJ5S2V5KCdkb2dfaWQnKTsKICAgICAgICAgICAgJHRhYmxlLT5hZGRLZXkoJ293bmVyX3VzZXJfaWQnKTsKICAgICAgICAgICAgJHRhYmxlLT5hZGRLZXkoJ3ByaW1hcnlfcGhvdG9fbWVkaWFfaWQnKTsKICAgICAgICB9KTsKCiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHVwZ3JhZGUoYXJyYXkgJHN0ZXBQYXJhbXMgPSBbXSkKICAgIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdW5pbnN0YWxsKGFycmF5ICRzdGVwUGFyYW1zID0gW10pCiAgICB7CiAgICAgICAgJHRoaXMtPnNjaGVtYU1hbmFnZXIoKS0+ZHJvcFRhYmxlKCd4Zl9uZXdmaV9kb2cnKTsKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo=\",\"bytes\":1445,\"sha256\":\"6fe24fe38301b346900bca84edddb6ff3fee3977cd820050efa0d20d0854bbdc\"},\"src/addons/Newfi/Dogs/_data/templates.xml\":{\"b64\":\"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHRlbXBsYXRlcz4KICA8dGVtcGxhdGUgdHlwZT0icHVibGljIiB0aXRsZT0ibmV3ZmlfZG9ncyIgdmVyc2lvbl9pZD0iMTAwMDAxMCIgdmVyc2lvbl9zdHJpbmc9IjEuMC4wIEFscGhhIDEiPjwhW0NEQVRBWwoKPHhmOnRpdGxlPtCh0L7QsdCw0LrQuDwveGY6dGl0bGU+Cgo8ZGl2IGNsYXNzPSJibG9jayI+Cgk8ZGl2IGNsYXNzPSJibG9jay1jb250YWluZXIiPgoJCTxoMiBjbGFzcz0iYmxvY2staGVhZGVyIj7Qn9GA0L7RhNC40LvQuCDRgdC+0LHQsNC6PC9oMj4KCQk8ZGl2IGNsYXNzPSJibG9jay1ib2R5Ij4KCQkJPGRpdiBjbGFzcz0iYmxvY2stcm93Ij4KCQkJCTxmb3JtIGFjdGlvbj0ie3sgbGluaygnZG9ncycpIH19IiBtZXRob2Q9ImdldCI+CgkJCQkJPGRpdiBjbGFzcz0iaW5wdXRHcm91cCI+CgkJCQkJCTxpbnB1dCBjbGFzcz0iaW5wdXQiIHR5cGU9InRleHQiIG5hbWU9InEiIHZhbHVlPSJ7JGZpbHRlcnMucX0iIHBsYWNlaG9sZGVyPSLQn9C+0LjRgdC6INC/0L4g0LjQvNC10L3QuCIgLz4KCQkJCQkJPHhmOnNlbGVjdCBuYW1lPSJzZXgiIHZhbHVlPSJ7JGZpbHRlcnMuc2V4fSI+CgkJCQkJCQk8eGY6b3B0aW9uIHZhbHVlPSIiPtCb0Y7QsdC+0Lkg0L/QvtC7PC94ZjpvcHRpb24+CgkJCQkJCQk8eGY6b3B0aW9uIHZhbHVlPSJtYWxlIj7QmtC+0LHQtdC70Yw8L3hmOm9wdGlvbj4KCQkJCQkJCTx4ZjpvcHRpb24gdmFsdWU9ImZlbWFsZSI+0KHRg9C60LA8L3hmOm9wdGlvbj4KCQkJCQkJCTx4ZjpvcHRpb24gdmFsdWU9InVua25vd24iPtCd0LUg0YPQutCw0LfQsNC9PC94ZjpvcHRpb24+CgkJCQkJCTwveGY6c2VsZWN0PgoJCQkJCQk8aW5wdXQgY2xhc3M9ImlucHV0IiB0eXBlPSJ0ZXh0IiBuYW1lPSJjb2xvciIgdmFsdWU9InskZmlsdGVycy5jb2xvcn0iIHBsYWNlaG9sZGVyPSLQntC60YDQsNGBIiAvPgoJCQkJCQk8YnV0dG9uIGNsYXNzPSJidXR0b24iIHR5cGU9InN1Ym1pdCI+0J3QsNC50YLQuDwvYnV0dG9uPgoJCQkJCTwvZGl2PgoJCQkJPC9mb3JtPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iYmxvY2stcm93Ij7Qk9C+0YDQvtC0INCy0LvQsNC00LXQu9GM0YbQsCDQvdC1INC/0YPQsdC70LjQutGD0LXRgtGB0Y8g0LIg0L7QsdGJ0LXQvCDRgdC/0LjRgdC60LUg0L/RgNC+0YTQuNC70LXQuS48L2Rpdj4KCQkJPHhmOmlmIGlzPSIkY2FuQ3JlYXRlIj4KCQkJCTxkaXYgY2xhc3M9ImJsb2NrLXJvdyI+PGEgY2xhc3M9ImJ1dHRvbiBidXR0b24tLXByaW1hcnkiIGhyZWY9Int7IGxpbmsoJ2RvZ3MvYWRkJykgfX0iPtCU0L7QsdCw0LLQuNGC0Ywg0YHQvtCx0LDQutGDPC9hPjwvZGl2PgoJCQk8L3hmOmlmPgoJCQk8eGY6aWYgaXM9IiRkb2dzIj4KCQkJCTx4Zjpmb3JlYWNoIGxvb3A9IiRkb2dzIiB2YWx1ZT0iJGRvZyI+CgkJCQkJPGRpdiBjbGFzcz0iYmxvY2stcm93Ij4KCQkJCQkJPGgzIGNsYXNzPSJjb250ZW50Um93LXRpdGxlIj48YSBocmVmPSJ7eyBsaW5rKCdkb2dzL3ZpZXcnLCBudWxsLCB7J2RvZ19pZCc6ICRkb2cuZG9nX2lkfSkgfX0iPnskZG9nLm5hbWV9PC9hPjwvaDM+CgkJCQkJCTx4ZjppZiBpcz0iJGRvZy5mdWxsX25hbWUiPjxkaXYgY2xhc3M9ImNvbnRlbnRSb3ctbWlub3IiPnskZG9nLmZ1bGxfbmFtZX08L2Rpdj48L3hmOmlmPgoJCQkJCQk8ZGl2IGNsYXNzPSJjb250ZW50Um93LW1pbm9yIj4KCQkJCQkJCTx4ZjppZiBpcz0iJGRvZy5zZXggPT0gJ21hbGUnIj7QmtC+0LHQtdC70YwKCQkJCQkJCTx4ZjplbHNlaWYgaXM9IiRkb2cuc2V4ID09ICdmZW1hbGUnIiAvPtCh0YPQutCwCgkJCQkJCQk8eGY6ZWxzZSAvPtCf0L7QuyDQvdC1INGD0LrQsNC30LDQvQoJCQkJCQkJPC94ZjppZj4KCQkJCQkJCTx4ZjppZiBpcz0iJGRvZy5jb2xvciI+IMK3IHskZG9nLmNvbG9yfTwveGY6aWY+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJPC94Zjpmb3JlYWNoPgoJCQk8eGY6ZWxzZSAvPgoJCQkJPGRpdiBjbGFzcz0iYmxvY2stcm93Ij7Qn9GA0L7RhNC40LvQtdC5INGB0L7QsdCw0Log0L/QviDQstGL0LHRgNCw0L3QvdGL0Lwg0YPRgdC70L7QstC40Y/QvCDQv9C+0LrQsCDQvdC10YIuPC9kaXY+CgkJCTwveGY6aWY+CgkJPC9kaXY+Cgk8L2Rpdj4KPC9kaXY+CgpdXT48L3RlbXBsYXRlPgogIDx0ZW1wbGF0ZSB0eXBlPSJwdWJsaWMiIHRpdGxlPSJuZXdmaV9kb2dfcHJvZmlsZSIgdmVyc2lvbl9pZD0iMTAwMDAxMCIgdmVyc2lvbl9zdHJpbmc9IjEuMC4wIEFscGhhIDEiPjwhW0NEQVRBWwoKPHhmOnRpdGxlPnskZG9nLm5hbWV9PC94Zjp0aXRsZT4KCjxkaXYgY2xhc3M9ImJsb2NrIj4KCTxkaXYgY2xhc3M9ImJsb2NrLWNvbnRhaW5lciI+CgkJPGgyIGNsYXNzPSJibG9jay1oZWFkZXIiPtCf0YDQvtGE0LjQu9GMINGB0L7QsdCw0LrQuDwvaDI+CgkJPGRpdiBjbGFzcz0iYmxvY2stYm9keSI+CgkJCTxkaXYgY2xhc3M9ImJsb2NrLXJvdyI+CgkJCQk8eGY6aWYgaXM9IiRwcmltYXJ5UGhvdG8iPgoJCQkJCTxhIGhyZWY9InskcHJpbWFyeVBob3RvLnVybH0iPgoJCQkJCQk8aW1nIHNyYz0ieyRwcmltYXJ5UGhvdG8udGh1bWJuYWlsX3VybH0iIGFsdD0ieyRwcmltYXJ5UGhvdG8udGl0bGV9IiBzdHlsZT0ibWF4LXdpZHRoOiA0MjBweDsgd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsiIC8+CgkJCQkJPC9hPgoJCQkJPHhmOmVsc2UgLz4KCQkJCQk8c3Ryb25nPtCe0YHQvdC+0LLQvdC+0LUg0YTQvtGC0L4g0L/QvtC60LAg0L3QtSDQstGL0LHRgNCw0L3Qvi48L3N0cm9uZz4KCQkJCTwveGY6aWY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJibG9jay1yb3ciPgoJCQkJPGgzPnskZG9nLm5hbWV9PC9oMz4KCQkJCTx4ZjppZiBpcz0iJGRvZy5mdWxsX25hbWUiPjxwPnskZG9nLmZ1bGxfbmFtZX08L3A+PC94ZjppZj4KCQkJCTx4ZjppZiBpcz0iJGRhdGVPZkJpcnRoIj48cD7QlNCw0YLQsCDRgNC+0LbQtNC10L3QuNGPOiB7JGRhdGVPZkJpcnRofTwvcD48L3hmOmlmPgoJCQkJPHA+0J/QvtC7OgoJCQkJCTx4ZjppZiBpcz0iJGRvZy5zZXggPT0gJ21hbGUnIj7QutC+0LHQtdC70YwKCQkJCQk8eGY6ZWxzZWlmIGlzPSIkZG9nLnNleCA9PSAnZmVtYWxlJyIgLz7RgdGD0LrQsAoJCQkJCTx4ZjplbHNlIC8+0L3QtSDRg9C60LDQt9Cw0L0KCQkJCQk8L3hmOmlmPgoJCQkJPC9wPgoJCQkJPHhmOmlmIGlzPSIkZG9nLmNvbG9yIj48cD7QntC60YDQsNGBOiB7JGRvZy5jb2xvcn08L3A+PC94ZjppZj4KCQkJCTx4ZjppZiBpcz0iJGNhbkVkaXQgJiYgJGRvZy5jaXR5Ij4KCQkJCQk8cD7Qk9C+0YDQvtC0OiB7JGRvZy5jaXR5fTwvcD4KCQkJCTx4ZjplbHNlIC8+CgkJCQkJPHA+0JPQvtGA0L7QtCDQstC70LDQtNC10LvRjNGG0LAg0L3QtSDQv9GD0LHQu9C40LrRg9C10YLRgdGPINCx0LXQtyDQtNC+0YHRgtGD0L/QsCDQstC70LDQtNC10LvRjNGG0LAuPC9wPgoJCQkJPC94ZjppZj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImJsb2NrLXJvdyI+CgkJCQk8eGY6aWYgaXM9IiRvd25lciI+PGEgaHJlZj0ie3sgbGluaygnbWVtYmVycycsICRvd25lcikgfX0iPtCS0LvQsNC00LXQu9C10YY6IHskb3duZXIudXNlcm5hbWV9PC9hPiDCtyA8L3hmOmlmPgoJCQkJPGEgaHJlZj0ie3sgbGluaygnZm9ydW1zJykgfX0iPtCk0L7RgNGD0Lw8L2E+IMK3CgkJCQk8YSBocmVmPSJ7eyBsaW5rKCdldmVudHMnKSB9fSI+0JLRi9GB0YLQsNCy0LrQuCDQuCDQstGB0YLRgNC10YfQuDwvYT4gwrcKCQkJCTxhIGhyZWY9Int7IGxpbmsoJ21lZGlhJykgfX0iPtCT0LDQu9C10YDQtdGPPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iYmxvY2stcm93Ij7QlNC+0L/QvtC70L3QuNGC0LXQu9GM0L3Ri9C1INGE0L7RgtC+0LPRgNCw0YTQuNC4INGF0YDQsNC90Y/RgtGB0Y8g0LIg0LzQtdC00LjQsNCz0LDQu9C10YDQtdC1OyDQvtGB0L3QvtCy0L3QvtC1INGE0L7RgtC+INC/0YDQvtGE0LjQu9GPINCy0YvQsdC40YDQsNC10YLRgdGPINC40Lcg0LzQtdC00LjQsCDQstC70LDQtNC10LvRjNGG0LAuPC9kaXY+CgkJCTx4ZjppZiBpcz0iJGNhbkVkaXQiPgoJCQkJPGRpdiBjbGFzcz0iYmxvY2stcm93Ij48YSBjbGFzcz0iYnV0dG9uIGJ1dHRvbi0tcHJpbWFyeSIgaHJlZj0ie3sgbGluaygnZG9ncy9lZGl0JywgbnVsbCwgeydkb2dfaWQnOiAkZG9nLmRvZ19pZH0pIH19Ij7QoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQv9GA0L7RhNC40LvRjDwvYT48L2Rpdj4KCQkJPC94ZjppZj4KCQk8L2Rpdj4KCTwvZGl2Pgo8L2Rpdj4KCgo8ZGl2IGNsYXNzPSJibG9jay1yb3ciPjxhIGhyZWY9Int7IGxpbmsoJ3BlZGlncmVlL3ZpZXcnLCBudWxsLCB7J2RvZ19pZCc6ICRkb2cuZG9nX2lkfSkgfX0iPtCg0L7QtNC+0YHQu9C+0LLQvdCw0Y88L2E+PC9kaXY+Cl1dPjwvdGVtcGxhdGU+CiAgPHRlbXBsYXRlIHR5cGU9InB1YmxpYyIgdGl0bGU9Im5ld2ZpX2RvZ19lZGl0IiB2ZXJzaW9uX2lkPSIxMDAwMDEwIiB2ZXJzaW9uX3N0cmluZz0iMS4wLjAgQWxwaGEgMSI+PCFbQ0RBVEFbCgo8eGY6dGl0bGU+e3sgJGRvZy5kb2dfaWQgPyAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0YHQvtCx0LDQutGDJyA6ICfQlNC+0LHQsNCy0LjRgtGMINGB0L7QsdCw0LrRgycgfX08L3hmOnRpdGxlPgoKPHhmOmZvcm0gYWN0aW9uPSJ7eyBsaW5rKCdkb2dzL3NhdmUnKSB9fSIgYWpheD0idHJ1ZSIgY2xhc3M9ImJsb2NrIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRvZ19pZCIgdmFsdWU9InskZG9nLmRvZ19pZH0iIC8+Cgk8ZGl2IGNsYXNzPSJibG9jay1jb250YWluZXIiPgoJCTxoMiBjbGFzcz0iYmxvY2staGVhZGVyIj57eyAkZG9nLmRvZ19pZCA/ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQv9GA0L7RhNC40LvRjCcgOiAn0J3QvtCy0YvQuSDQv9GA0L7RhNC40LvRjCcgfX08L2gyPgoJCTxkaXYgY2xhc3M9ImJsb2NrLWJvZHkiPgoJCQk8eGY6dGV4dGJveHJvdyBuYW1lPSJuYW1lIiB2YWx1ZT0ieyRkb2cubmFtZX0iIG1heGxlbmd0aD0iMTAwIiBsYWJlbD0i0JjQvNGPIiAvPgoJCQk8eGY6dGV4dGJveHJvdyBuYW1lPSJmdWxsX25hbWUiIHZhbHVlPSJ7JGRvZy5mdWxsX25hbWV9IiBtYXhsZW5ndGg9IjI1NSIgbGFiZWw9ItCf0L7Qu9C90L7QtSDQuNC80Y8iIC8+CgkJCTx4Zjp0ZXh0Ym94cm93IG5hbWU9ImRhdGVfb2ZfYmlydGgiIHZhbHVlPSJ7JGRhdGVPZkJpcnRofSIgdHlwZT0iZGF0ZSIgbGFiZWw9ItCU0LDRgtCwINGA0L7QttC00LXQvdC40Y8iIC8+CgkJCTx4ZjpzZWxlY3Ryb3cgbmFtZT0ic2V4IiB2YWx1ZT0ieyRkb2cuc2V4fSIgbGFiZWw9ItCf0L7QuyI+CgkJCQk8eGY6b3B0aW9uIHZhbHVlPSJ1bmtub3duIj7QndC1INGD0LrQsNC30LDQvTwveGY6b3B0aW9uPgoJCQkJPHhmOm9wdGlvbiB2YWx1ZT0ibWFsZSI+0JrQvtCx0LXQu9GMPC94ZjpvcHRpb24+CgkJCQk8eGY6b3B0aW9uIHZhbHVlPSJmZW1hbGUiPtCh0YPQutCwPC94ZjpvcHRpb24+CgkJCTwveGY6c2VsZWN0cm93PgoJCQk8eGY6dGV4dGJveHJvdyBuYW1lPSJjb2xvciIgdmFsdWU9InskZG9nLmNvbG9yfSIgbWF4bGVuZ3RoPSIxMDAiIGxhYmVsPSLQntC60YDQsNGBIiAvPgoJCQk8eGY6dGV4dGJveHJvdyBuYW1lPSJjaXR5IiB2YWx1ZT0ieyRkb2cuY2l0eX0iIG1heGxlbmd0aD0iMTAwIiBsYWJlbD0i0JPQvtGA0L7QtCDQstC70LDQtNC10LvRjNGG0LAiCgkJCQlleHBsYWluPSLQk9C+0YDQvtC0INGF0YDQsNC90LjRgtGB0Y8g0LTQu9GPINCy0LvQsNC00LXQu9GM0YbQsCwg0L3QviDQvdC1INC/0L7QutCw0LfRi9Cy0LDQtdGC0YHRjyDQsiDQv9GD0LHQu9C40YfQvdC+0Lwg0YHQv9C40YHQutC1INC4INC/0YPQsdC70LjRh9C90L7QvNGDINC/0L7RgdC10YLQuNGC0LXQu9GOINC/0YDQvtGE0LjQu9GPLiIgLz4KCQkJPHhmOnRleHRib3hyb3cgbmFtZT0icHJpbWFyeV9waG90b19tZWRpYV9pZCIgdmFsdWU9InskZG9nLnByaW1hcnlfcGhvdG9fbWVkaWFfaWR9IiB0eXBlPSJudW1iZXIiIG1pbj0iMCIKCQkJCWxhYmVsPSJJRCDQvtGB0L3QvtCy0L3QvtCz0L4g0YTQvtGC0L4iCgkJCQlleHBsYWluPSLQo9C60LDQttC40YLQtSBJRCDQtNC+0YHRgtGD0L/QvdC+0LPQviDQuNC30L7QsdGA0LDQttC10L3QuNGPINC40Lcg0YHQvtCx0YHRgtCy0LXQvdC90L7QuSDQvNC10LTQuNCw0LPQsNC70LXRgNC10LguINCU0L7Qv9C+0LvQvdC40YLQtdC70YzQvdGL0LUg0YTQvtGC0L4g0L7RgdGC0LDRjtGC0YHRjyDQsiBYRk1HLiIgLz4KCQk8L2Rpdj4KCQk8eGY6c3VibWl0cm93IHN1Ym1pdD0i0KHQvtGF0YDQsNC90LjRgtGMIiAvPgoJPC9kaXY+CjwveGY6Zm9ybT4KCl1dPjwvdGVtcGxhdGU+CjwvdGVtcGxhdGVzPgo=\",\"bytes\":6344,\"sha256\":\"18a27d937a4e793451500c93bb91823b89136bc820ecb61b04ffdcb3f9044ba5\"},\"src/addons/Newfi/Pedigree/Pub/Controller/Pedigree.php\":{\"b64\":\"PD9waHAKbmFtZXNwYWNlIE5ld2ZpXFBlZGlncmVlXFB1YlxDb250cm9sbGVyOwoKdXNlIFhGXFB1YlxDb250cm9sbGVyXEFic3RyYWN0Q29udHJvbGxlcjsKCmNsYXNzIFBlZGlncmVlIGV4dGVuZHMgQWJzdHJhY3RDb250cm9sbGVyCnsKICAgIC8vIERlbGliZXJhdGVseSBOT1QgbmFtZWQgc2VydmljZSgpOiBYRlxNdmNcQ29udHJvbGxlcjo6c2VydmljZSgpIGlzIHB1YmxpYyBBUEkuCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gcGVkaWdyZWVTZXJ2aWNlKCk6IFxOZXdmaVxQZWRpZ3JlZVxTZXJ2aWNlXFBlZGlncmVlCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5zZXJ2aWNlKCdOZXdmaVxQZWRpZ3JlZTpQZWRpZ3JlZScpOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjYW5FZGl0RG9nKGFycmF5ICRkb2cpOiBib29sCiAgICB7CiAgICAgICAgJHZpc2l0b3IgPSBcWEY6OnZpc2l0b3IoKTsKICAgICAgICBpZiAoISR2aXNpdG9yIHx8ICEkdmlzaXRvci0+dXNlcl9pZCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICBpZiAoIWNsYXNzX2V4aXN0cygnTmV3ZmlcXERvZ3NcXFNlcnZpY2VcXERvZ1BvbGljeScpKSB7IHJldHVybiBmYWxzZTsgfQogICAgICAgIGlmICgoaW50KSRkb2dbJ293bmVyX3VzZXJfaWQnXSA9PT0gKGludCkkdmlzaXRvci0+dXNlcl9pZCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgICAgIHJldHVybiAhZW1wdHkoJHZpc2l0b3ItPmlzX2FkbWluKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWN0aW9uSW5kZXgoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+dmlldygnTmV3ZmlcUGVkaWdyZWU6UGVkaWdyZWUnLCAnbmV3ZmlfcGVkaWdyZWVfaW5kZXgnKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWN0aW9uVmlldygpCiAgICB7CiAgICAgICAgJGRvZ0lkID0gJHRoaXMtPmZpbHRlcignZG9nX2lkJywgJ3VpbnQnKTsKICAgICAgICAkc3ZjID0gJHRoaXMtPnBlZGlncmVlU2VydmljZSgpOwogICAgICAgICRkb2cgPSAkc3ZjLT5kb2coJGRvZ0lkKTsKICAgICAgICBpZiAoISRkb2cpIHsgcmV0dXJuICR0aGlzLT5ub3RGb3VuZCgpOyB9CiAgICAgICAgJHBhcmVudHMgPSAkc3ZjLT5wYXJlbnRzKCRkb2dJZCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT52aWV3KCdOZXdmaVxQZWRpZ3JlZTpQZWRpZ3JlZScsICduZXdmaV9wZWRpZ3JlZV92aWV3JywgWwogICAgICAgICAgICAnZG9nJyA9PiAkZG9nLAogICAgICAgICAgICAnc2lyZScgPT4gJHBhcmVudHNbJ3NpcmUnXSwKICAgICAgICAgICAgJ2RhbScgPT4gJHBhcmVudHNbJ2RhbSddLAogICAgICAgICAgICAnb2Zmc3ByaW5nJyA9PiAkc3ZjLT5vZmZzcHJpbmcoJGRvZ0lkKSwKICAgICAgICAgICAgJ2R1cGxpY2F0ZXMnID0+ICRzdmMtPnBvdGVudGlhbER1cGxpY2F0ZXMoJGRvZ0lkKSwKICAgICAgICAgICAgJ2NhbkVkaXQnID0+ICR0aGlzLT5jYW5FZGl0RG9nKCRkb2cpCiAgICAgICAgXSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGFjdGlvbkVkaXQoKQogICAgewogICAgICAgICRkb2dJZCA9ICR0aGlzLT5maWx0ZXIoJ2RvZ19pZCcsICd1aW50Jyk7CiAgICAgICAgJHN2YyA9ICR0aGlzLT5wZWRpZ3JlZVNlcnZpY2UoKTsgJGRvZyA9ICRzdmMtPmRvZygkZG9nSWQpOwogICAgICAgIGlmICghJGRvZykgeyByZXR1cm4gJHRoaXMtPm5vdEZvdW5kKCk7IH0KICAgICAgICBpZiAoISR0aGlzLT5jYW5FZGl0RG9nKCRkb2cpKSB7IHJldHVybiAkdGhpcy0+bm9QZXJtaXNzaW9uKCk7IH0KICAgICAgICAkcGFyZW50cyA9ICRzdmMtPnBhcmVudHMoJGRvZ0lkKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnZpZXcoJ05ld2ZpXFBlZGlncmVlOlBlZGlncmVlJywgJ25ld2ZpX3BlZGlncmVlX2VkaXQnLCBbJ2RvZyc9PiRkb2csJ3NpcmUnPT4kcGFyZW50c1snc2lyZSddLCdkYW0nPT4kcGFyZW50c1snZGFtJ11dKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWN0aW9uU2F2ZSgpCiAgICB7CiAgICAgICAgJHRoaXMtPmFzc2VydFBvc3RPbmx5KCk7CiAgICAgICAgJGRvZ0lkID0gJHRoaXMtPmZpbHRlcignZG9nX2lkJywgJ3VpbnQnKTsKICAgICAgICAkc3ZjID0gJHRoaXMtPnBlZGlncmVlU2VydmljZSgpOyAkZG9nID0gJHN2Yy0+ZG9nKCRkb2dJZCk7CiAgICAgICAgaWYgKCEkZG9nKSB7IHJldHVybiAkdGhpcy0+bm90Rm91bmQoKTsgfQogICAgICAgIGlmICghJHRoaXMtPmNhbkVkaXREb2coJGRvZykpIHsgcmV0dXJuICR0aGlzLT5ub1Blcm1pc3Npb24oKTsgfQogICAgICAgICRpbnB1dCA9ICR0aGlzLT5maWx0ZXIoWwogICAgICAgICAgICAnc2lyZV9pZCc9Pid1aW50JywnZGFtX2lkJz0+J3VpbnQnLAogICAgICAgICAgICAnc2lyZV9zb3VyY2VfdXJsJz0+J3N0cicsJ2RhbV9zb3VyY2VfdXJsJz0+J3N0cicsCiAgICAgICAgICAgICdzaXJlX2NoZWNrZWRfYXQnPT4ndWludCcsJ2RhbV9jaGVja2VkX2F0Jz0+J3VpbnQnCiAgICAgICAgXSk7CiAgICAgICAgdHJ5IHsgJHN2Yy0+c2F2ZVBhcmVudHMoJGRvZ0lkLCAkaW5wdXQsIChpbnQpXFhGOjp2aXNpdG9yKCktPnVzZXJfaWQpOyB9CiAgICAgICAgY2F0Y2ggKFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gJGUpIHsgcmV0dXJuICR0aGlzLT5lcnJvcigkZS0+Z2V0TWVzc2FnZSgpKTsgfQogICAgICAgIHJldHVybiAkdGhpcy0+cmVkaXJlY3QoJHRoaXMtPmJ1aWxkTGluaygncGVkaWdyZWUvdmlldycsIG51bGwsIFsnZG9nX2lkJz0+JGRvZ0lkXSkpOwogICAgfQp9Cg==\",\"bytes\":2749,\"sha256\":\"95c442a992ba253b398cde34993297a29731747e4133e70e31330df45dc1e996\"},\"src/addons/Newfi/Pedigree/Service/Pedigree.php\":{\"b64\":\"PD9waHAKbmFtZXNwYWNlIE5ld2ZpXFBlZGlncmVlXFNlcnZpY2U7Cgp1c2UgWEZcQXBwOwp1c2UgWEZcU2VydmljZVxBYnN0cmFjdFNlcnZpY2U7CgpjbGFzcyBQZWRpZ3JlZSBleHRlbmRzIEFic3RyYWN0U2VydmljZQp7CiAgICBwcm90ZWN0ZWQgJGRiOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChBcHAgJGFwcCkKICAgIHsKICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRhcHApOwogICAgICAgICR0aGlzLT5kYiA9ICRhcHAtPmRiKCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGRvZyhpbnQgJGRvZ0lkKTogP2FycmF5CiAgICB7CiAgICAgICAgJHJvdyA9ICR0aGlzLT5kYi0+ZmV0Y2hSb3coIlNFTEVDVCBkb2dfaWQsIG5hbWUsIGZ1bGxfbmFtZSwgZGF0ZV9vZl9iaXJ0aCwgc2V4LCBvd25lcl91c2VyX2lkIEZST00geGZfbmV3ZmlfZG9nIFdIRVJFIGRvZ19pZCA9ID8iLCAkZG9nSWQpOwogICAgICAgIHJldHVybiAkcm93ID86IG51bGw7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHBhcmVudHMoaW50ICRkb2dJZCk6IGFycmF5CiAgICB7CiAgICAgICAgJHJvd3MgPSAkdGhpcy0+ZGItPmZldGNoQWxsKCJTRUxFQ1QgcC5yb2xlLCBwLnBhcmVudF9kb2dfaWQsIHAuc291cmNlX3VybCwgcC5jaGVja2VkX2F0LCBkLm5hbWUsIGQuZnVsbF9uYW1lLCBkLmRhdGVfb2ZfYmlydGgsIGQuc2V4IEZST00geGZfbmV3ZmlfcGVkaWdyZWVfcGFyZW50IHAgSk9JTiB4Zl9uZXdmaV9kb2cgZCBPTiBkLmRvZ19pZD1wLnBhcmVudF9kb2dfaWQgV0hFUkUgcC5jaGlsZF9kb2dfaWQ9PyBPUkRFUiBCWSBwLnJvbGUiLCAkZG9nSWQpOwogICAgICAgICRvdXQgPSBbJ3NpcmUnID0+IG51bGwsICdkYW0nID0+IG51bGxdOwogICAgICAgIGZvcmVhY2ggKCRyb3dzIGFzICRyb3cpIHsgJG91dFskcm93Wydyb2xlJ11dID0gJHJvdzsgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBvZmZzcHJpbmcoaW50ICRkb2dJZCk6IGFycmF5CiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5kYi0+ZmV0Y2hBbGwoIlNFTEVDVCBwLnJvbGUsIHAuY2hpbGRfZG9nX2lkLCBkLm5hbWUsIGQuZnVsbF9uYW1lLCBkLmRhdGVfb2ZfYmlydGgsIGQuc2V4IEZST00geGZfbmV3ZmlfcGVkaWdyZWVfcGFyZW50IHAgSk9JTiB4Zl9uZXdmaV9kb2cgZCBPTiBkLmRvZ19pZD1wLmNoaWxkX2RvZ19pZCBXSEVSRSBwLnBhcmVudF9kb2dfaWQ9PyBPUkRFUiBCWSBkLmRhdGVfb2ZfYmlydGgsIGQuZG9nX2lkIiwgJGRvZ0lkKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gcG90ZW50aWFsRHVwbGljYXRlcyhpbnQgJGRvZ0lkKTogYXJyYXkKICAgIHsKICAgICAgICAkZG9nID0gJHRoaXMtPmRvZygkZG9nSWQpOwogICAgICAgIGlmICghJGRvZykgeyByZXR1cm4gW107IH0KICAgICAgICAkZnVsbCA9IHRyaW0oKHN0cmluZykkZG9nWydmdWxsX25hbWUnXSk7CiAgICAgICAgJGRvYiA9IChpbnQpJGRvZ1snZGF0ZV9vZl9iaXJ0aCddOwogICAgICAgICRzZXggPSBzdHJ0b2xvd2VyKHRyaW0oKHN0cmluZykkZG9nWydzZXgnXSkpOwogICAgICAgIGlmICgkZnVsbCA9PT0gJycgfHwgJGRvYiA8PSAwIHx8ICFpbl9hcnJheSgkc2V4LCBbJ21hbGUnLCdmZW1hbGUnXSwgdHJ1ZSkpIHsgcmV0dXJuIFtdOyB9CiAgICAgICAgcmV0dXJuICR0aGlzLT5kYi0+ZmV0Y2hBbGwoIlNFTEVDVCBkb2dfaWQsIG5hbWUsIGZ1bGxfbmFtZSwgZGF0ZV9vZl9iaXJ0aCwgc2V4IEZST00geGZfbmV3ZmlfZG9nIFdIRVJFIGRvZ19pZDw+PyBBTkQgTE9XRVIoVFJJTShmdWxsX25hbWUpKT1MT1dFUihUUklNKD8pKSBBTkQgZGF0ZV9vZl9iaXJ0aD0/IEFORCBMT1dFUihzZXgpPT8gT1JERVIgQlkgZG9nX2lkIiwgWyRkb2dJZCwgJGZ1bGwsICRkb2IsICRzZXhdKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gdmFsaWRhdGVTb3VyY2UoP3N0cmluZyAkc291cmNlVXJsLCBpbnQgJGNoZWNrZWRBdCk6IHZvaWQKICAgIHsKICAgICAgICAkc291cmNlVXJsID0gdHJpbSgoc3RyaW5nKSRzb3VyY2VVcmwpOwogICAgICAgIGlmICgkc291cmNlVXJsID09PSAnJykgeyByZXR1cm47IH0KICAgICAgICBpZiAoc3RyaXBvcygkc291cmNlVXJsLCAnaHR0cHM6Ly8nKSAhPT0gMCkgeyB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignc291cmNlX3VybF9tdXN0X2JlX2h0dHBzJyk7IH0KICAgICAgICBpZiAoJGNoZWNrZWRBdCA8PSAwKSB7IHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdjaGVja2VkX2F0X3JlcXVpcmVkJyk7IH0KICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYXNzZXJ0UGFyZW50KGludCAkY2hpbGRJZCwgc3RyaW5nICRyb2xlLCBpbnQgJHBhcmVudElkLCA/c3RyaW5nICRzb3VyY2VVcmwsIGludCAkY2hlY2tlZEF0KTogdm9pZAogICAgewogICAgICAgIGlmICghaW5fYXJyYXkoJHJvbGUsIFsnc2lyZScsJ2RhbSddLCB0cnVlKSkgeyB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignaW52YWxpZF9yb2xlJyk7IH0KICAgICAgICBpZiAoJHBhcmVudElkIDw9IDApIHsgcmV0dXJuOyB9CiAgICAgICAgaWYgKCRjaGlsZElkID09PSAkcGFyZW50SWQpIHsgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ3NlbGZfcGFyZW50Jyk7IH0KICAgICAgICAkY2hpbGQgPSAkdGhpcy0+ZG9nKCRjaGlsZElkKTsgJHBhcmVudCA9ICR0aGlzLT5kb2coJHBhcmVudElkKTsKICAgICAgICBpZiAoISRjaGlsZCB8fCAhJHBhcmVudCkgeyB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignZG9nX25vdF9mb3VuZCcpOyB9CiAgICAgICAgJHNleCA9IHN0cnRvbG93ZXIodHJpbSgoc3RyaW5nKSRwYXJlbnRbJ3NleCddKSk7CiAgICAgICAgaWYgKCRyb2xlID09PSAnc2lyZScgJiYgJHNleCAhPT0gJycgJiYgJHNleCAhPT0gJ3Vua25vd24nICYmICRzZXggIT09ICdtYWxlJykgeyB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignc2lyZV9zZXhfbWlzbWF0Y2gnKTsgfQogICAgICAgIGlmICgkcm9sZSA9PT0gJ2RhbScgJiYgJHNleCAhPT0gJycgJiYgJHNleCAhPT0gJ3Vua25vd24nICYmICRzZXggIT09ICdmZW1hbGUnKSB7IHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdkYW1fc2V4X21pc21hdGNoJyk7IH0KICAgICAgICAkdGhpcy0+dmFsaWRhdGVTb3VyY2UoJHNvdXJjZVVybCwgJGNoZWNrZWRBdCk7CiAgICAgICAgaWYgKCR0aGlzLT53b3VsZEN5Y2xlKCRjaGlsZElkLCAkcGFyZW50SWQpKSB7IHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdhbmNlc3RyeV9jeWNsZScpOyB9CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHdvdWxkQ3ljbGUoaW50ICRjaGlsZElkLCBpbnQgJHBhcmVudElkKTogYm9vbAogICAgewogICAgICAgICRzZWVuID0gW107ICRzdGFjayA9IFskcGFyZW50SWRdOwogICAgICAgIHdoaWxlICgkc3RhY2spCiAgICAgICAgewogICAgICAgICAgICAkaWQgPSAoaW50KWFycmF5X3BvcCgkc3RhY2spOwogICAgICAgICAgICBpZiAoJGlkID09PSAkY2hpbGRJZCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgICAgICAgICBpZiAoaXNzZXQoJHNlZW5bJGlkXSkpIHsgY29udGludWU7IH0KICAgICAgICAgICAgJHNlZW5bJGlkXSA9IHRydWU7CiAgICAgICAgICAgICRyb3dzID0gJHRoaXMtPmRiLT5mZXRjaEFsbCgiU0VMRUNUIHBhcmVudF9kb2dfaWQgRlJPTSB4Zl9uZXdmaV9wZWRpZ3JlZV9wYXJlbnQgV0hFUkUgY2hpbGRfZG9nX2lkPT8iLCAkaWQpOwogICAgICAgICAgICBmb3JlYWNoICgkcm93cyBhcyAkcm93KSB7ICRzdGFja1tdID0gKGludCkkcm93WydwYXJlbnRfZG9nX2lkJ107IH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXZlUGFyZW50cyhpbnQgJGNoaWxkSWQsIGFycmF5ICRpbnB1dCwgaW50ICR1c2VySWQpOiB2b2lkCiAgICB7CiAgICAgICAgaWYgKCEkdGhpcy0+ZG9nKCRjaGlsZElkKSkgeyB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignY2hpbGRfbm90X2ZvdW5kJyk7IH0KICAgICAgICAkc2lyZUlkID0gKGludCkoJGlucHV0WydzaXJlX2lkJ10gPz8gMCk7ICRkYW1JZCA9IChpbnQpKCRpbnB1dFsnZGFtX2lkJ10gPz8gMCk7CiAgICAgICAgaWYgKCRzaXJlSWQgPiAwICYmICRkYW1JZCA+IDAgJiYgJHNpcmVJZCA9PT0gJGRhbUlkKSB7IHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdzYW1lX3NpcmVfZGFtJyk7IH0KICAgICAgICAkc2lyZVVybCA9IHRyaW0oKHN0cmluZykoJGlucHV0WydzaXJlX3NvdXJjZV91cmwnXSA/PyAnJykpOyAkZGFtVXJsID0gdHJpbSgoc3RyaW5nKSgkaW5wdXRbJ2RhbV9zb3VyY2VfdXJsJ10gPz8gJycpKTsKICAgICAgICAkc2lyZUNoZWNrZWQgPSAoaW50KSgkaW5wdXRbJ3NpcmVfY2hlY2tlZF9hdCddID8/IDApOyAkZGFtQ2hlY2tlZCA9IChpbnQpKCRpbnB1dFsnZGFtX2NoZWNrZWRfYXQnXSA/PyAwKTsKICAgICAgICAvLyBWYWxpZGF0ZSBCT1RIIHJlcXVlc3RzIGJlZm9yZSBmaXJzdCB3cml0ZS4KICAgICAgICAkdGhpcy0+YXNzZXJ0UGFyZW50KCRjaGlsZElkLCAnc2lyZScsICRzaXJlSWQsICRzaXJlVXJsLCAkc2lyZUNoZWNrZWQpOwogICAgICAgICR0aGlzLT5hc3NlcnRQYXJlbnQoJGNoaWxkSWQsICdkYW0nLCAkZGFtSWQsICRkYW1VcmwsICRkYW1DaGVja2VkKTsKICAgICAgICAkbm93ID0gdGltZSgpOwogICAgICAgICR0aGlzLT5kYi0+YmVnaW5UcmFuc2FjdGlvbigpOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgZm9yZWFjaCAoW1snc2lyZScsJHNpcmVJZCwkc2lyZVVybCwkc2lyZUNoZWNrZWRdLCBbJ2RhbScsJGRhbUlkLCRkYW1VcmwsJGRhbUNoZWNrZWRdXSBhcyAkeCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWyRyb2xlLCRwYXJlbnRJZCwkdXJsLCRjaGVja2VkXSA9ICR4OwogICAgICAgICAgICAgICAgaWYgKCRwYXJlbnRJZCA8PSAwKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5kYi0+ZGVsZXRlKCd4Zl9uZXdmaV9wZWRpZ3JlZV9wYXJlbnQnLCAnY2hpbGRfZG9nX2lkPT8gQU5EIHJvbGU9PycsIFskY2hpbGRJZCwkcm9sZV0pOwogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJGV4aXN0aW5nID0gJHRoaXMtPmRiLT5mZXRjaE9uZSgiU0VMRUNUIGNyZWF0ZWRfYXQgRlJPTSB4Zl9uZXdmaV9wZWRpZ3JlZV9wYXJlbnQgV0hFUkUgY2hpbGRfZG9nX2lkPT8gQU5EIHJvbGU9PyIsIFskY2hpbGRJZCwkcm9sZV0pOwogICAgICAgICAgICAgICAgJGNyZWF0ZWQgPSAkZXhpc3RpbmcgPyAoaW50KSRleGlzdGluZyA6ICRub3c7CiAgICAgICAgICAgICAgICAkdGhpcy0+ZGItPnF1ZXJ5KCJJTlNFUlQgSU5UTyB4Zl9uZXdmaV9wZWRpZ3JlZV9wYXJlbnQgKGNoaWxkX2RvZ19pZCxyb2xlLHBhcmVudF9kb2dfaWQsc291cmNlX3VybCxjaGVja2VkX2F0LGNyZWF0ZWRfYnlfdXNlcl9pZCxjcmVhdGVkX2F0LHVwZGF0ZWRfYXQpIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/KSBPTiBEVVBMSUNBVEUgS0VZIFVQREFURSBwYXJlbnRfZG9nX2lkPVZBTFVFUyhwYXJlbnRfZG9nX2lkKSxzb3VyY2VfdXJsPVZBTFVFUyhzb3VyY2VfdXJsKSxjaGVja2VkX2F0PVZBTFVFUyhjaGVja2VkX2F0KSxjcmVhdGVkX2J5X3VzZXJfaWQ9VkFMVUVTKGNyZWF0ZWRfYnlfdXNlcl9pZCksdXBkYXRlZF9hdD1WQUxVRVModXBkYXRlZF9hdCkiLCBbJGNoaWxkSWQsJHJvbGUsJHBhcmVudElkLCR1cmwgIT09ICcnID8gJHVybCA6IG51bGwsJGNoZWNrZWQsJHVzZXJJZCwkY3JlYXRlZCwkbm93XSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHRoaXMtPmRiLT5jb21taXQoKTsKICAgICAgICB9CiAgICAgICAgY2F0Y2ggKFxUaHJvd2FibGUgJGUpIHsgJHRoaXMtPmRiLT5yb2xsYmFjaygpOyB0aHJvdyAkZTsgfQogICAgfQp9Cg==\",\"bytes\":6067,\"sha256\":\"a3d26f3b9ab211f1eaded83a9dc6b935c5c94f91355be7bd1f8490ae82285eb2\"},\"src/addons/Newfi/Pedigree/Setup.php\":{\"b64\":\"PD9waHAKbmFtZXNwYWNlIE5ld2ZpXFBlZGlncmVlOwoKdXNlIFhGXEFkZE9uXEFic3RyYWN0U2V0dXA7CnVzZSBYRlxEYlxTY2hlbWFcQ3JlYXRlOwoKY2xhc3MgU2V0dXAgZXh0ZW5kcyBBYnN0cmFjdFNldHVwCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBpbnN0YWxsKGFycmF5ICRzdGVwUGFyYW1zID0gW10pCiAgICB7CiAgICAgICAgJHRoaXMtPnNjaGVtYU1hbmFnZXIoKS0+Y3JlYXRlVGFibGUoJ3hmX25ld2ZpX3BlZGlncmVlX3BhcmVudCcsIGZ1bmN0aW9uKENyZWF0ZSAkdGFibGUpCiAgICAgICAgewogICAgICAgICAgICAkdGFibGUtPmFkZENvbHVtbignY2hpbGRfZG9nX2lkJywgJ2ludCcpLT51bnNpZ25lZCgpOwogICAgICAgICAgICAkdGFibGUtPmFkZENvbHVtbigncm9sZScsICd2YXJjaGFyJywgOCk7CiAgICAgICAgICAgICR0YWJsZS0+YWRkQ29sdW1uKCdwYXJlbnRfZG9nX2lkJywgJ2ludCcpLT51bnNpZ25lZCgpOwogICAgICAgICAgICAkdGFibGUtPmFkZENvbHVtbignc291cmNlX3VybCcsICd2YXJjaGFyJywgMjA0OCktPm51bGxhYmxlKCk7CiAgICAgICAgICAgICR0YWJsZS0+YWRkQ29sdW1uKCdjaGVja2VkX2F0JywgJ2ludCcpLT51bnNpZ25lZCgpLT5zZXREZWZhdWx0KDApOwogICAgICAgICAgICAkdGFibGUtPmFkZENvbHVtbignY3JlYXRlZF9ieV91c2VyX2lkJywgJ2ludCcpLT51bnNpZ25lZCgpLT5zZXREZWZhdWx0KDApOwogICAgICAgICAgICAkdGFibGUtPmFkZENvbHVtbignY3JlYXRlZF9hdCcsICdpbnQnKS0+dW5zaWduZWQoKS0+c2V0RGVmYXVsdCgwKTsKICAgICAgICAgICAgJHRhYmxlLT5hZGRDb2x1bW4oJ3VwZGF0ZWRfYXQnLCAnaW50JyktPnVuc2lnbmVkKCktPnNldERlZmF1bHQoMCk7CiAgICAgICAgICAgICR0YWJsZS0+YWRkUHJpbWFyeUtleShbJ2NoaWxkX2RvZ19pZCcsICdyb2xlJ10pOwogICAgICAgICAgICAkdGFibGUtPmFkZEtleSgncGFyZW50X2RvZ19pZCcpOwogICAgICAgIH0pOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB1cGdyYWRlKGFycmF5ICRzdGVwUGFyYW1zID0gW10pCiAgICB7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHVuaW5zdGFsbChhcnJheSAkc3RlcFBhcmFtcyA9IFtdKQogICAgewogICAgICAgICR0aGlzLT5zY2hlbWFNYW5hZ2VyKCktPmRyb3BUYWJsZSgneGZfbmV3ZmlfcGVkaWdyZWVfcGFyZW50Jyk7CiAgICB9Cn0K\",\"bytes\":1200,\"sha256\":\"11d4b72d6cba436f76fa9c95b01f0b249b950a6e1588494d86deffbd5caa1dae\"}},\"paths\":[\"src/addons/Newfi/Dogs/Entity/Dog.php\",\"src/addons/Newfi/Dogs/Pub/Controller/Dogs.php\",\"src/addons/Newfi/Dogs/Pub/View/Dogs.php\",\"src/addons/Newfi/Dogs/Service/DogPolicy.php\",\"src/addons/Newfi/Dogs/Setup.php\",\"src/addons/Newfi/Dogs/_data/routes.xml\",\"src/addons/Newfi/Dogs/_data/templates.xml\",\"src/addons/Newfi/Dogs/addon.json\",\"src/addons/Newfi/Pedigree/Pub/Controller/Pedigree.php\",\"src/addons/Newfi/Pedigree/Pub/View/Pedigree.php\",\"src/addons/Newfi/Pedigree/Repository/Pedigree.php\",\"src/addons/Newfi/Pedigree/Service/Pedigree.php\",\"src/addons/Newfi/Pedigree/Setup.php\",\"src/addons/Newfi/Pedigree/_data/routes.xml\",\"src/addons/Newfi/Pedigree/_data/templates.xml\",\"src/addons/Newfi/Pedigree/addon.json\"]}\nMED345_ERROR_CLASS=Error\nMED345_ERROR_SHA=ae9f4a1eea01890cb6b31e8cbb0fe33f7aa527db2b4e8b50f3c5f11fcafdfb27\nDECISION=HOLD_MEDICAL218_AUDIT345\nNEXT_GATE=RECONCILE_MEDICAL218_AUDIT345_EXACT_FAILURE\nCHANGES_MADE=False\nROLLBACK_STARTED=False\nROLLBACK_RESTORED=None\nMUTATION_OUTCOME=NO_MUTATION\nHOMELAB_RESULT_CONTRACT={\"changes_made\":false,\"command_id\":\"NEWFI-260921-NEWFDOM-MEDICAL218-AUDIT345\",\"rollback_restored\":null,\"rollback_started\":false,\"status\":\"FAIL\",\"version\":1}\nMED345_END=true\n" + "output": "SIGNALBOT052FIXPREP4_RESULT={\"exact_match_count\":1,\"items\":[{\"branch\":\"cr-2026-0105-demonov-shadow-orchestrator\",\"clean\":true,\"git\":true,\"head\":\"559948bcb6baead49a47d9953b0cc0090e332fd7\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot\",\"source_match\":false},{\"branch\":\"signalbot-260917-reconnect-reconciliation\",\"clean\":true,\"git\":true,\"head\":\"749073ae0f894debc06fb0ffbf7a84abf9da531f\",\"head_match\":true,\"path\":\"/root/.local/share/signalbot-dev/signalbot-260917-reconnect-reconciliation\",\"source\":{\"bytes\":12078,\"sha256\":\"023ce0a041b50b866a48d9f752bd80479a34789d82f73c81d18246ed8871ef8e\"},\"source_match\":true,\"test\":{\"bytes\":10463,\"sha256\":\"bebdd9c2875d2c63a0ac27d89eefa7f1c36c83c067aa8b472c0616ac470dd2a2\"}},{\"branch\":\"cr-2026-0106-projection-node-binding\",\"clean\":true,\"git\":true,\"head\":\"bc2570f71c69140acd0a80e25e6d82d2d4adc4f4\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0106\",\"source_match\":false},{\"branch\":\"cr-2026-0107-production-8020-producer\",\"clean\":true,\"git\":true,\"head\":\"3d59766ee08181e3124e6e86e48421f1aa3a2635\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0107\",\"source_match\":false},{\"branch\":\"cr-2026-0108-durable-producer-outbox\",\"clean\":true,\"git\":true,\"head\":\"9fe67eaaf80009899e45ae31096ba5d307cfde4c\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0108\",\"source_match\":false},{\"branch\":\"cr-2026-0109-outbox-shadow-delivery\",\"clean\":true,\"git\":true,\"head\":\"578e6d40822469b89a29aede4d01e32628744450\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0109\",\"source_match\":false},{\"branch\":\"cr-2026-0110-shadow-deployment\",\"clean\":true,\"git\":true,\"head\":\"59b226007bc3b506c9ab9ac5d1ad10745062e557\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0110\",\"source_match\":false},{\"branch\":\"cr-2026-0111-technical-shadow-seal\",\"clean\":true,\"git\":true,\"head\":\"c7fd5428eb0d535905468c5989f28ce0444c2c01\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0111\",\"source_match\":false},{\"branch\":\"cr-2026-0112-live-prospective-policy\",\"clean\":true,\"git\":true,\"head\":\"c9a88e1953b1f82554ad363dce814cf84507ce65\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0112\",\"source_match\":false},{\"branch\":\"cr-2026-0113-multiarm-fsm-market-registry\",\"clean\":true,\"git\":true,\"head\":\"4e302a6b7ec50966e303e034bbf8d31a577753bd\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0113\",\"source_match\":false},{\"branch\":\"cr-2026-0114-live-feeds-russian-email\",\"clean\":true,\"git\":true,\"head\":\"5a8a0db00c095e1427b3c17cbb9f7c683cd5c014\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0114\",\"source_match\":false},{\"branch\":\"cr-2026-0115-live-prospective-cutover\",\"clean\":true,\"git\":true,\"head\":\"18132ee2a0f70a7bc319e51d197ff99184a7961a\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0115\",\"source_match\":false},{\"branch\":\"cr-2026-0116-reliability-finality\",\"clean\":true,\"deployer\":{\"bytes\":31515,\"sha256\":\"3ca98e06c9ca24ed0e2e96a8b882a2f9c66451f31b7429faff56c241ec700a20\"},\"git\":true,\"head\":\"ac7094a76ddc06f376d71a76432af7c2dd10ec7d\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0116\",\"source_match\":false},{\"branch\":\"research/cr0117-signal-quality-roadmap-20260902\",\"clean\":true,\"git\":true,\"head\":\"d33cb4efc544a96b8bbb46bed1590413cca14628\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-cr0117-roadmap\",\"source_match\":false},{\"branch\":\"docs-signal-bot-roadmap-cr0116-cr0119\",\"clean\":true,\"git\":true,\"head\":\"39d3b6af08621f1ad9749a24fc54bc022b3ad9be\",\"head_match\":false,\"path\":\"/root/8020-demonov-shadow-bot-roadmap\",\"source_match\":false}],\"matches\":[{\"branch\":\"signalbot-260917-reconnect-reconciliation\",\"clean\":true,\"git\":true,\"head\":\"749073ae0f894debc06fb0ffbf7a84abf9da531f\",\"head_match\":true,\"path\":\"/root/.local/share/signalbot-dev/signalbot-260917-reconnect-reconciliation\",\"source\":{\"bytes\":12078,\"sha256\":\"023ce0a041b50b866a48d9f752bd80479a34789d82f73c81d18246ed8871ef8e\"},\"source_match\":true,\"test\":{\"bytes\":10463,\"sha256\":\"bebdd9c2875d2c63a0ac27d89eefa7f1c36c83c067aa8b472c0616ac470dd2a2\"}}]}\nTASK_RESULT=PASS_SIGNALBOT_052FIXPREP4_EXACT_WORKTREE_PROVEN\nHOMELAB_RESULT_CONTRACT={\"version\":1,\"command_id\":\"SIGNALBOT-260921-SCIENTIFIC-WORKTREE-LOCATOR-052FIXPREP4\",\"status\":\"OK\",\"changes_made\":false,\"rollback_started\":false,\"rollback_restored\":null}\n" } diff --git a/runtime/latest.txt b/runtime/latest.txt index 1d3274e9..9b008083 100644 --- a/runtime/latest.txt +++ b/runtime/latest.txt @@ -1,22 +1,22 @@ CHAT_OUTPUT_BEGIN -COMMAND_ID=NEWFI-260921-NEWFDOM-MEDICAL218-AUDIT345 -STATUS=FAIL -RC=3 +COMMAND_ID=SIGNALBOT-260921-SCIENTIFIC-WORKTREE-LOCATOR-052FIXPREP4 +STATUS=OK +RC=0 HOST=pve01 MODE=read-only -COMPONENT=newfi-medical218-transition-and-private-contract-audit +COMPONENT=signalbot-scientific-worktree-locator REFERENCE_REGISTER_CHECK=OK REFERENCE_SHA256=5a3d8e5154c41cb582a4e0aca68090be1f0138918bf82131a948df326f9d8d66 ERROR_REGISTER_CHECK=OK ERROR_REGISTER_SHA256=3b09a553ec0f527ed3afeed4753f52a74ee3036045bbfb3c685e9f8af4ba7ba0 -COMMAND_SHA256=0f4ce3369883bd3815a3634b79848d947daeb32a0c1b3854fc257a7620dbeaf4 +COMMAND_SHA256=a095e90fd39c4a8ad0bbba63be2f63797141fb14b1fd9504f1f6eb5eda69f80f DUPLICATE_FAILED_COMMAND_BLOCKED=false EXECUTION_STARTED=true CHANGE_DECLARED=false RESULT_CONTRACT_VALID=true RESULT_CONTRACT_STATUS=NOT_APPLICABLE RESULT_CONTRACT_ERROR=NONE -COMMAND_RC=3 +COMMAND_RC=0 CHANGES_MADE=false ROLLBACK_STARTED=false ROLLBACK_RESTORED=null @@ -24,25 +24,12 @@ MUTATION_OUTCOME=NO_MUTATION SANITIZED=yes SECRETS_INCLUDED=no PRIVATE_ADDRESSES_INCLUDED=no -RAW_EVIDENCE_SHA256=4326c3e8885c82eedc3a50033bb56d55c749da569a1d76e1019924ebe8a5eae9 -SANITIZED_OUTPUT_SHA256=4326c3e8885c82eedc3a50033bb56d55c749da569a1d76e1019924ebe8a5eae9 +RAW_EVIDENCE_SHA256=3b4b7ab400d03a8fdde3af47e70ee3030eb3a125afb347ec3acf021bb70d89e5 +SANITIZED_OUTPUT_SHA256=3b4b7ab400d03a8fdde3af47e70ee3030eb3a125afb347ec3acf021bb70d89e5 OUTPUT_BEGIN -MED345_BEGIN=true -COMMAND_ID=NEWFI-260921-NEWFDOM-MEDICAL218-AUDIT345 -IMMUTABLE_PLAN_CHECK=PASS -AUTHORITY_SHA_MATCH=True -GIT_STATE={"branch":"implementation/newfi-closed-mvp-20260906","clean":true,"head":"33b6f020b8c7bd6adc57f51c164ff028aadc62cc","remote":"33b6f020b8c7bd6adc57f51c164ff028aadc62cc","subject":"Newfi: add PEDIGREE217 pedigrees"} -SOURCE_TREE={"captured":{"src/addons/Newfi/Dogs/Entity/Dog.php":{"b64":"PD9waHAKCm5hbWVzcGFjZSBOZXdmaVxEb2dzXEVudGl0eTsKCnVzZSBYRlxNdmNcRW50aXR5XEVudGl0eTsKdXNlIFhGXE12Y1xFbnRpdHlcU3RydWN0dXJlOwoKY2xhc3MgRG9nIGV4dGVuZHMgRW50aXR5CnsKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0U3RydWN0dXJlKFN0cnVjdHVyZSAkc3RydWN0dXJlKQogICAgewogICAgICAgICRzdHJ1Y3R1cmUtPnRhYmxlID0gJ3hmX25ld2ZpX2RvZyc7CiAgICAgICAgJHN0cnVjdHVyZS0+c2hvcnROYW1lID0gJ05ld2ZpXERvZ3M6RG9nJzsKICAgICAgICAkc3RydWN0dXJlLT5wcmltYXJ5S2V5ID0gJ2RvZ19pZCc7CiAgICAgICAgJHN0cnVjdHVyZS0+Y29sdW1ucyA9IFsKICAgICAgICAgICAgJ2RvZ19pZCcgPT4gWyd0eXBlJyA9PiBzZWxmOjpVSU5ULCAnYXV0b0luY3JlbWVudCcgPT4gdHJ1ZSwgJ251bGxhYmxlJyA9PiB0cnVlXSwKICAgICAgICAgICAgJ25hbWUnID0+IFsndHlwZScgPT4gc2VsZjo6U1RSLCAnbWF4TGVuZ3RoJyA9PiAxMDAsICdyZXF1aXJlZCcgPT4gdHJ1ZV0sCiAgICAgICAgICAgICdmdWxsX25hbWUnID0+IFsndHlwZScgPT4gc2VsZjo6U1RSLCAnbWF4TGVuZ3RoJyA9PiAyNTUsICdkZWZhdWx0JyA9PiAnJ10sCiAgICAgICAgICAgICdkYXRlX29mX2JpcnRoJyA9PiBbJ3R5cGUnID0+IHNlbGY6OlVJTlQsICdkZWZhdWx0JyA9PiAwXSwKICAgICAgICAgICAgJ3NleCcgPT4gWyd0eXBlJyA9PiBzZWxmOjpTVFIsICdtYXhMZW5ndGgnID0+IDIwLCAnZGVmYXVsdCcgPT4gJyddLAogICAgICAgICAgICAnY29sb3InID0+IFsndHlwZScgPT4gc2VsZjo6U1RSLCAnbWF4TGVuZ3RoJyA9PiAxMDAsICdkZWZhdWx0JyA9PiAnJ10sCiAgICAgICAgICAgICdjaXR5JyA9PiBbJ3R5cGUnID0+IHNlbGY6OlNUUiwgJ21heExlbmd0aCcgPT4gMTAwLCAnZGVmYXVsdCcgPT4gJyddLAogICAgICAgICAgICAncHJpbWFyeV9waG90b19tZWRpYV9pZCcgPT4gWyd0eXBlJyA9PiBzZWxmOjpVSU5ULCAnZGVmYXVsdCcgPT4gMF0sCiAgICAgICAgICAgICdvd25lcl91c2VyX2lkJyA9PiBbJ3R5cGUnID0+IHNlbGY6OlVJTlQsICdkZWZhdWx0JyA9PiAwXSwKICAgICAgICAgICAgJ2NyZWF0ZWRfYXQnID0+IFsndHlwZScgPT4gc2VsZjo6VUlOVCwgJ3JlcXVpcmVkJyA9PiB0cnVlXSwKICAgICAgICAgICAgJ3VwZGF0ZWRfYXQnID0+IFsndHlwZScgPT4gc2VsZjo6VUlOVCwgJ3JlcXVpcmVkJyA9PiB0cnVlXQogICAgICAgIF07CiAgICAgICAgcmV0dXJuICRzdHJ1Y3R1cmU7CiAgICB9Cn0K","bytes":1278,"sha256":"2db869d37ef9a5f19c74e9e093504ce50313735400649f94046c48089c67996f"},"src/addons/Newfi/Dogs/Pub/Controller/Dogs.php":{"b64":"PD9waHAKCm5hbWVzcGFjZSBOZXdmaVxEb2dzXFB1YlxDb250cm9sbGVyOwoKdXNlIE5ld2ZpXERvZ3NcU2VydmljZVxEb2dQb2xpY3k7CnVzZSBYRlxQdWJcQ29udHJvbGxlclxBYnN0cmFjdENvbnRyb2xsZXI7CgpjbGFzcyBEb2dzIGV4dGVuZHMgQWJzdHJhY3RDb250cm9sbGVyCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBhY3Rpb25JbmRleCgpCiAgICB7CiAgICAgICAgJHEgPSB0cmltKChzdHJpbmcpJHRoaXMtPmZpbHRlcigncScsICdzdHInKSk7CiAgICAgICAgJHNleCA9IHRyaW0oKHN0cmluZykkdGhpcy0+ZmlsdGVyKCdzZXgnLCAnc3RyJykpOwogICAgICAgICRjb2xvciA9IHRyaW0oKHN0cmluZykkdGhpcy0+ZmlsdGVyKCdjb2xvcicsICdzdHInKSk7CgogICAgICAgICRmaW5kZXIgPSAkdGhpcy0+ZmluZGVyKCdOZXdmaVxEb2dzOkRvZycpCiAgICAgICAgICAgIC0+b3JkZXIoJ25hbWUnLCAnQVNDJykKICAgICAgICAgICAgLT5vcmRlcignZG9nX2lkJywgJ0FTQycpOwoKICAgICAgICBpZiAoJHEgIT09ICcnKQogICAgICAgIHsKICAgICAgICAgICAgJGZpbmRlci0+d2hlcmVPcihbCiAgICAgICAgICAgICAgICBbJ25hbWUnLCAnTElLRScsICRmaW5kZXItPmVzY2FwZUxpa2UoJHEsICclPyUnKV0sCiAgICAgICAgICAgICAgICBbJ2Z1bGxfbmFtZScsICdMSUtFJywgJGZpbmRlci0+ZXNjYXBlTGlrZSgkcSwgJyU/JScpXQogICAgICAgICAgICBdKTsKICAgICAgICB9CgogICAgICAgIGlmIChpbl9hcnJheSgkc2V4LCBbJ21hbGUnLCAnZmVtYWxlJywgJ3Vua25vd24nXSwgdHJ1ZSkpCiAgICAgICAgewogICAgICAgICAgICAkZmluZGVyLT53aGVyZSgnc2V4JywgJHNleCk7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgICRzZXggPSAnJzsKICAgICAgICB9CgogICAgICAgIGlmICgkY29sb3IgIT09ICcnKQogICAgICAgIHsKICAgICAgICAgICAgJGZpbmRlci0+d2hlcmUoJ2NvbG9yJywgJGNvbG9yKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkdGhpcy0+dmlldygnTmV3ZmlcRG9nczpEb2dzJywgJ25ld2ZpX2RvZ3MnLCBbCiAgICAgICAgICAgICdkb2dzJyA9PiAkZmluZGVyLT5mZXRjaCgxMDApLAogICAgICAgICAgICAnZmlsdGVycycgPT4gWydxJyA9PiAkcSwgJ3NleCcgPT4gJHNleCwgJ2NvbG9yJyA9PiAkY29sb3JdLAogICAgICAgICAgICAnY2FuQ3JlYXRlJyA9PiBEb2dQb2xpY3k6OmNhbkNyZWF0ZShcWEY6OnZpc2l0b3IoKSkKICAgICAgICBdKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWN0aW9uVmlldygpCiAgICB7CiAgICAgICAgJGRvZ0lkID0gKGludCkkdGhpcy0+ZmlsdGVyKCdkb2dfaWQnLCAndWludCcpOwogICAgICAgICRkb2cgPSAkdGhpcy0+ZW0oKS0+ZmluZCgnTmV3ZmlcRG9nczpEb2cnLCAkZG9nSWQpOwogICAgICAgIGlmICghJGRvZykKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bm90Rm91bmQoKTsKICAgICAgICB9CgogICAgICAgICR2aXNpdG9yID0gXFhGOjp2aXNpdG9yKCk7CiAgICAgICAgJGNhbkVkaXQgPSBEb2dQb2xpY3k6OmNhbkVkaXQoJGRvZywgJHZpc2l0b3IpOwogICAgICAgICRvd25lciA9IG51bGw7CiAgICAgICAgaWYgKCR2aXNpdG9yLT51c2VyX2lkICYmICRkb2ctPm93bmVyX3VzZXJfaWQpCiAgICAgICAgewogICAgICAgICAgICAkb3duZXIgPSAkdGhpcy0+ZW0oKS0+ZmluZCgnWEY6VXNlcicsIChpbnQpJGRvZy0+b3duZXJfdXNlcl9pZCk7CiAgICAgICAgfQoKICAgICAgICAkcHJpbWFyeVBob3RvID0gbnVsbDsKICAgICAgICBpZiAoJGRvZy0+cHJpbWFyeV9waG90b19tZWRpYV9pZCkKICAgICAgICB7CiAgICAgICAgICAgICRtZWRpYSA9ICR0aGlzLT5lbSgpLT5maW5kKCdYRk1HOk1lZGlhSXRlbScsIChpbnQpJGRvZy0+cHJpbWFyeV9waG90b19tZWRpYV9pZCk7CiAgICAgICAgICAgIGlmICgkbWVkaWEgJiYgJG1lZGlhLT5pc1Zpc2libGUoKSAmJiAkbWVkaWEtPmNhblZpZXcoKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJHN0cnVjdHVyZWQgPSAkbWVkaWEtPmdldFN0cnVjdHVyZWREYXRhKCk7CiAgICAgICAgICAgICAgICAkcHJpbWFyeVBob3RvID0gWwogICAgICAgICAgICAgICAgICAgICd0aXRsZScgPT4gKHN0cmluZykkbWVkaWEtPnRpdGxlLAogICAgICAgICAgICAgICAgICAgICd0aHVtYm5haWxfdXJsJyA9PiAoc3RyaW5nKSgkc3RydWN0dXJlZFsndGh1bWJuYWlsVXJsJ10gPz8gJycpLAogICAgICAgICAgICAgICAgICAgICdjb250ZW50X3VybCcgPT4gKHN0cmluZykoJHN0cnVjdHVyZWRbJ2NvbnRlbnRVcmwnXSA/PyAnJyksCiAgICAgICAgICAgICAgICAgICAgJ3VybCcgPT4gJHRoaXMtPmJ1aWxkTGluaygnY2Fub25pY2FsOm1lZGlhJywgJG1lZGlhKQogICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgICAgIGlmICgkcHJpbWFyeVBob3RvWyd0aHVtYm5haWxfdXJsJ10gPT09ICcnKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRwcmltYXJ5UGhvdG9bJ3RodW1ibmFpbF91cmwnXSA9ICRwcmltYXJ5UGhvdG9bJ2NvbnRlbnRfdXJsJ107CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkdGhpcy0+dmlldygnTmV3ZmlcRG9nczpEb2dzJywgJ25ld2ZpX2RvZ19wcm9maWxlJywgWwogICAgICAgICAgICAnZG9nJyA9PiAkZG9nLAogICAgICAgICAgICAnY2FuRWRpdCcgPT4gJGNhbkVkaXQsCiAgICAgICAgICAgICdvd25lcicgPT4gJG93bmVyLAogICAgICAgICAgICAncHJpbWFyeVBob3RvJyA9PiAkcHJpbWFyeVBob3RvLAogICAgICAgICAgICAnZGF0ZU9mQmlydGgnID0+ICRkb2ctPmRhdGVfb2ZfYmlydGggPyBnbWRhdGUoJ1ktbS1kJywgKGludCkkZG9nLT5kYXRlX29mX2JpcnRoKSA6ICcnCiAgICAgICAgXSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGFjdGlvbkFkZCgpCiAgICB7CiAgICAgICAgJHZpc2l0b3IgPSBcWEY6OnZpc2l0b3IoKTsKICAgICAgICBpZiAoIURvZ1BvbGljeTo6Y2FuQ3JlYXRlKCR2aXNpdG9yKSkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bm9QZXJtaXNzaW9uKCk7CiAgICAgICAgfQoKICAgICAgICAkZG9nID0gJHRoaXMtPmVtKCktPmNyZWF0ZSgnTmV3ZmlcRG9nczpEb2cnKTsKICAgICAgICAkZG9nLT5vd25lcl91c2VyX2lkID0gKGludCkkdmlzaXRvci0+dXNlcl9pZDsKICAgICAgICAkZG9nLT5zZXggPSAndW5rbm93bic7CgogICAgICAgIHJldHVybiAkdGhpcy0+dmlldygnTmV3ZmlcRG9nczpEb2dzJywgJ25ld2ZpX2RvZ19lZGl0JywgWwogICAgICAgICAgICAnZG9nJyA9PiAkZG9nLAogICAgICAgICAgICAnZGF0ZU9mQmlydGgnID0+ICcnCiAgICAgICAgXSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGFjdGlvbkVkaXQoKQogICAgewogICAgICAgICRkb2dJZCA9IChpbnQpJHRoaXMtPmZpbHRlcignZG9nX2lkJywgJ3VpbnQnKTsKICAgICAgICAkZG9nID0gJHRoaXMtPmVtKCktPmZpbmQoJ05ld2ZpXERvZ3M6RG9nJywgJGRvZ0lkKTsKICAgICAgICBpZiAoISRkb2cpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPm5vdEZvdW5kKCk7CiAgICAgICAgfQogICAgICAgIGlmICghRG9nUG9saWN5OjpjYW5FZGl0KCRkb2csIFxYRjo6dmlzaXRvcigpKSkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bm9QZXJtaXNzaW9uKCk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHRoaXMtPnZpZXcoJ05ld2ZpXERvZ3M6RG9ncycsICduZXdmaV9kb2dfZWRpdCcsIFsKICAgICAgICAgICAgJ2RvZycgPT4gJGRvZywKICAgICAgICAgICAgJ2RhdGVPZkJpcnRoJyA9PiAkZG9nLT5kYXRlX29mX2JpcnRoID8gZ21kYXRlKCdZLW0tZCcsIChpbnQpJGRvZy0+ZGF0ZV9vZl9iaXJ0aCkgOiAnJwogICAgICAgIF0pOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhY3Rpb25TYXZlKCkKICAgIHsKICAgICAgICAkdGhpcy0+YXNzZXJ0UG9zdE9ubHkoKTsKCiAgICAgICAgJHZpc2l0b3IgPSBcWEY6OnZpc2l0b3IoKTsKICAgICAgICAkZG9nSWQgPSAoaW50KSR0aGlzLT5maWx0ZXIoJ2RvZ19pZCcsICd1aW50Jyk7CiAgICAgICAgaWYgKCRkb2dJZCkKICAgICAgICB7CiAgICAgICAgICAgICRkb2cgPSAkdGhpcy0+ZW0oKS0+ZmluZCgnTmV3ZmlcRG9nczpEb2cnLCAkZG9nSWQpOwogICAgICAgICAgICBpZiAoISRkb2cpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bm90Rm91bmQoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIURvZ1BvbGljeTo6Y2FuRWRpdCgkZG9nLCAkdmlzaXRvcikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bm9QZXJtaXNzaW9uKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgaWYgKCFEb2dQb2xpY3k6OmNhbkNyZWF0ZSgkdmlzaXRvcikpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bm9QZXJtaXNzaW9uKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGRvZyA9ICR0aGlzLT5lbSgpLT5jcmVhdGUoJ05ld2ZpXERvZ3M6RG9nJyk7CiAgICAgICAgICAgICRkb2ctPm93bmVyX3VzZXJfaWQgPSAoaW50KSR2aXNpdG9yLT51c2VyX2lkOwogICAgICAgICAgICAkZG9nLT5jcmVhdGVkX2F0ID0gdGltZSgpOwogICAgICAgIH0KCiAgICAgICAgJG5hbWUgPSB0cmltKChzdHJpbmcpJHRoaXMtPmZpbHRlcignbmFtZScsICdzdHInKSk7CiAgICAgICAgaWYgKCRuYW1lID09PSAnJykKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+ZXJyb3IoJ9Cj0LrQsNC20LjRgtC1INC40LzRjyDRgdC+0LHQsNC60LguJyk7CiAgICAgICAgfQoKICAgICAgICAkZnVsbE5hbWUgPSB0cmltKChzdHJpbmcpJHRoaXMtPmZpbHRlcignZnVsbF9uYW1lJywgJ3N0cicpKTsKICAgICAgICAkY29sb3IgPSB0cmltKChzdHJpbmcpJHRoaXMtPmZpbHRlcignY29sb3InLCAnc3RyJykpOwogICAgICAgICRjaXR5ID0gdHJpbSgoc3RyaW5nKSR0aGlzLT5maWx0ZXIoJ2NpdHknLCAnc3RyJykpOwogICAgICAgICRzZXggPSB0cmltKChzdHJpbmcpJHRoaXMtPmZpbHRlcignc2V4JywgJ3N0cicpKTsKICAgICAgICBpZiAoIWluX2FycmF5KCRzZXgsIFsnbWFsZScsICdmZW1hbGUnLCAndW5rbm93biddLCB0cnVlKSkKICAgICAgICB7CiAgICAgICAgICAgICRzZXggPSAndW5rbm93bic7CiAgICAgICAgfQoKICAgICAgICAkZGF0ZVRleHQgPSB0cmltKChzdHJpbmcpJHRoaXMtPmZpbHRlcignZGF0ZV9vZl9iaXJ0aCcsICdzdHInKSk7CiAgICAgICAgJGRhdGVPZkJpcnRoID0gMDsKICAgICAgICBpZiAoJGRhdGVUZXh0ICE9PSAnJykKICAgICAgICB7CiAgICAgICAgICAgICRkYXRlID0gXERhdGVUaW1lSW1tdXRhYmxlOjpjcmVhdGVGcm9tRm9ybWF0KCchWS1tLWQnLCAkZGF0ZVRleHQsIG5ldyBcRGF0ZVRpbWVab25lKCdVVEMnKSk7CiAgICAgICAgICAgIGlmICghJGRhdGUgfHwgJGRhdGUtPmZvcm1hdCgnWS1tLWQnKSAhPT0gJGRhdGVUZXh0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPmVycm9yKCfQlNCw0YLQsCDRgNC+0LbQtNC10L3QuNGPINC00L7Qu9C20L3QsCDQsdGL0YLRjCDQsiDRhNC+0YDQvNCw0YLQtSDQk9CT0JPQky3QnNCcLdCU0JQuJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGRhdGVPZkJpcnRoID0gJGRhdGUtPmdldFRpbWVzdGFtcCgpOwogICAgICAgIH0KCiAgICAgICAgJG1lZGlhSWQgPSAoaW50KSR0aGlzLT5maWx0ZXIoJ3ByaW1hcnlfcGhvdG9fbWVkaWFfaWQnLCAndWludCcpOwogICAgICAgIGlmICgkbWVkaWFJZCkKICAgICAgICB7CiAgICAgICAgICAgICRtZWRpYSA9ICR0aGlzLT5lbSgpLT5maW5kKCdYRk1HOk1lZGlhSXRlbScsICRtZWRpYUlkKTsKICAgICAgICAgICAgaWYgKCEkbWVkaWEgfHwgISRtZWRpYS0+aXNWaXNpYmxlKCkgfHwgISRtZWRpYS0+Y2FuVmlldygpIHx8IChpbnQpJG1lZGlhLT51c2VyX2lkICE9PSAoaW50KSRkb2ctPm93bmVyX3VzZXJfaWQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+ZXJyb3IoJ9Ce0YHQvdC+0LLQvdGL0Lwg0YTQvtGC0L4g0LzQvtC20L3QviDQstGL0LHRgNCw0YLRjCDRgtC+0LvRjNC60L4g0LTQvtGB0YLRg9C/0L3QvtC1INC40LfQvtCx0YDQsNC20LXQvdC40LUg0LjQtyDQvNC10LTQuNCw0LPQsNC70LXRgNC10Lgg0LLQu9Cw0LTQtdC70YzRhtCwLicpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkZG9nLT5uYW1lID0gJG5hbWU7CiAgICAgICAgJGRvZy0+ZnVsbF9uYW1lID0gJGZ1bGxOYW1lOwogICAgICAgICRkb2ctPmRhdGVfb2ZfYmlydGggPSAkZGF0ZU9mQmlydGg7CiAgICAgICAgJGRvZy0+c2V4ID0gJHNleDsKICAgICAgICAkZG9nLT5jb2xvciA9ICRjb2xvcjsKICAgICAgICAkZG9nLT5jaXR5ID0gJGNpdHk7CiAgICAgICAgJGRvZy0+cHJpbWFyeV9waG90b19tZWRpYV9pZCA9ICRtZWRpYUlkOwogICAgICAgICRkb2ctPnVwZGF0ZWRfYXQgPSB0aW1lKCk7CiAgICAgICAgJGRvZy0+c2F2ZSgpOwoKICAgICAgICByZXR1cm4gJHRoaXMtPnJlZGlyZWN0KAogICAgICAgICAgICAkdGhpcy0+YnVpbGRMaW5rKCdkb2dzL3ZpZXcnLCBudWxsLCBbJ2RvZ19pZCcgPT4gJGRvZy0+ZG9nX2lkXSksCiAgICAgICAgICAgICfQn9GA0L7RhNC40LvRjCDRgdC+0LHQsNC60Lgg0YHQvtGF0YDQsNC90ZHQvS4nCiAgICAgICAgKTsKICAgIH0KfQo=","bytes":6860,"sha256":"0d439de7fc579f6ceda188dc6436378b0dbddd52f8f2c2c3fe6bef6473d7742f"},"src/addons/Newfi/Dogs/Service/DogPolicy.php":{"b64":"PD9waHAKCm5hbWVzcGFjZSBOZXdmaVxEb2dzXFNlcnZpY2U7Cgp1c2UgTmV3ZmlcRG9nc1xFbnRpdHlcRG9nOwp1c2UgWEZcRW50aXR5XFVzZXI7CgpmaW5hbCBjbGFzcyBEb2dQb2xpY3kKewogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjYW5DcmVhdGUoVXNlciAkdmlzaXRvcik6IGJvb2wKICAgIHsKICAgICAgICByZXR1cm4gKGJvb2wpJHZpc2l0b3ItPnVzZXJfaWQ7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBjYW5FZGl0KERvZyAkZG9nLCBVc2VyICR2aXNpdG9yKTogYm9vbAogICAgewogICAgICAgIGlmICghJHZpc2l0b3ItPnVzZXJfaWQpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gKGludCkkZG9nLT5vd25lcl91c2VyX2lkID09PSAoaW50KSR2aXNpdG9yLT51c2VyX2lkCiAgICAgICAgICAgIHx8IChib29sKSR2aXNpdG9yLT5pc19hZG1pbjsKICAgIH0KfQo=","bytes":488,"sha256":"32fb9de560b2fe5df1473a869bf56c3bf9f7a29a5f78d5bf16ad82a39104bbfb"},"src/addons/Newfi/Dogs/Setup.php":{"b64":"PD9waHAKCm5hbWVzcGFjZSBOZXdmaVxEb2dzOwoKdXNlIFhGXEFkZE9uXEFic3RyYWN0U2V0dXA7CnVzZSBYRlxEYlxTY2hlbWFcQ3JlYXRlOwoKY2xhc3MgU2V0dXAgZXh0ZW5kcyBBYnN0cmFjdFNldHVwCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBpbnN0YWxsKGFycmF5ICRzdGVwUGFyYW1zID0gW10pCiAgICB7CiAgICAgICAgJHNtID0gJHRoaXMtPnNjaGVtYU1hbmFnZXIoKTsKCiAgICAgICAgJHNtLT5jcmVhdGVUYWJsZSgneGZfbmV3ZmlfZG9nJywgZnVuY3Rpb24gKENyZWF0ZSAkdGFibGUpCiAgICAgICAgewogICAgICAgICAgICAkdGFibGUtPmFkZENvbHVtbignZG9nX2lkJywgJ2ludCcpLT5hdXRvSW5jcmVtZW50KCk7CiAgICAgICAgICAgICR0YWJsZS0+YWRkQ29sdW1uKCduYW1lJywgJ3ZhcmNoYXInLCAxMDApOwogICAgICAgICAgICAkdGFibGUtPmFkZENvbHVtbignZnVsbF9uYW1lJywgJ3ZhcmNoYXInLCAyNTUpLT5zZXREZWZhdWx0KCcnKTsKICAgICAgICAgICAgJHRhYmxlLT5hZGRDb2x1bW4oJ2RhdGVfb2ZfYmlydGgnLCAnaW50JyktPnNldERlZmF1bHQoMCk7CiAgICAgICAgICAgICR0YWJsZS0+YWRkQ29sdW1uKCdzZXgnLCAndmFyYmluYXJ5JywgMjApLT5zZXREZWZhdWx0KCcnKTsKICAgICAgICAgICAgJHRhYmxlLT5hZGRDb2x1bW4oJ2NvbG9yJywgJ3ZhcmNoYXInLCAxMDApLT5zZXREZWZhdWx0KCcnKTsKICAgICAgICAgICAgJHRhYmxlLT5hZGRDb2x1bW4oJ2NpdHknLCAndmFyY2hhcicsIDEwMCktPnNldERlZmF1bHQoJycpOwogICAgICAgICAgICAkdGFibGUtPmFkZENvbHVtbigncHJpbWFyeV9waG90b19tZWRpYV9pZCcsICdpbnQnKS0+c2V0RGVmYXVsdCgwKTsKICAgICAgICAgICAgJHRhYmxlLT5hZGRDb2x1bW4oJ293bmVyX3VzZXJfaWQnLCAnaW50JyktPnNldERlZmF1bHQoMCk7CiAgICAgICAgICAgICR0YWJsZS0+YWRkQ29sdW1uKCdjcmVhdGVkX2F0JywgJ2ludCcpOwogICAgICAgICAgICAkdGFibGUtPmFkZENvbHVtbigndXBkYXRlZF9hdCcsICdpbnQnKTsKICAgICAgICAgICAgJHRhYmxlLT5hZGRQcmltYXJ5S2V5KCdkb2dfaWQnKTsKICAgICAgICAgICAgJHRhYmxlLT5hZGRLZXkoJ293bmVyX3VzZXJfaWQnKTsKICAgICAgICAgICAgJHRhYmxlLT5hZGRLZXkoJ3ByaW1hcnlfcGhvdG9fbWVkaWFfaWQnKTsKICAgICAgICB9KTsKCiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHVwZ3JhZGUoYXJyYXkgJHN0ZXBQYXJhbXMgPSBbXSkKICAgIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdW5pbnN0YWxsKGFycmF5ICRzdGVwUGFyYW1zID0gW10pCiAgICB7CiAgICAgICAgJHRoaXMtPnNjaGVtYU1hbmFnZXIoKS0+ZHJvcFRhYmxlKCd4Zl9uZXdmaV9kb2cnKTsKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQo=","bytes":1445,"sha256":"6fe24fe38301b346900bca84edddb6ff3fee3977cd820050efa0d20d0854bbdc"},"src/addons/Newfi/Dogs/_data/templates.xml":{"b64":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHRlbXBsYXRlcz4KICA8dGVtcGxhdGUgdHlwZT0icHVibGljIiB0aXRsZT0ibmV3ZmlfZG9ncyIgdmVyc2lvbl9pZD0iMTAwMDAxMCIgdmVyc2lvbl9zdHJpbmc9IjEuMC4wIEFscGhhIDEiPjwhW0NEQVRBWwoKPHhmOnRpdGxlPtCh0L7QsdCw0LrQuDwveGY6dGl0bGU+Cgo8ZGl2IGNsYXNzPSJibG9jayI+Cgk8ZGl2IGNsYXNzPSJibG9jay1jb250YWluZXIiPgoJCTxoMiBjbGFzcz0iYmxvY2staGVhZGVyIj7Qn9GA0L7RhNC40LvQuCDRgdC+0LHQsNC6PC9oMj4KCQk8ZGl2IGNsYXNzPSJibG9jay1ib2R5Ij4KCQkJPGRpdiBjbGFzcz0iYmxvY2stcm93Ij4KCQkJCTxmb3JtIGFjdGlvbj0ie3sgbGluaygnZG9ncycpIH19IiBtZXRob2Q9ImdldCI+CgkJCQkJPGRpdiBjbGFzcz0iaW5wdXRHcm91cCI+CgkJCQkJCTxpbnB1dCBjbGFzcz0iaW5wdXQiIHR5cGU9InRleHQiIG5hbWU9InEiIHZhbHVlPSJ7JGZpbHRlcnMucX0iIHBsYWNlaG9sZGVyPSLQn9C+0LjRgdC6INC/0L4g0LjQvNC10L3QuCIgLz4KCQkJCQkJPHhmOnNlbGVjdCBuYW1lPSJzZXgiIHZhbHVlPSJ7JGZpbHRlcnMuc2V4fSI+CgkJCQkJCQk8eGY6b3B0aW9uIHZhbHVlPSIiPtCb0Y7QsdC+0Lkg0L/QvtC7PC94ZjpvcHRpb24+CgkJCQkJCQk8eGY6b3B0aW9uIHZhbHVlPSJtYWxlIj7QmtC+0LHQtdC70Yw8L3hmOm9wdGlvbj4KCQkJCQkJCTx4ZjpvcHRpb24gdmFsdWU9ImZlbWFsZSI+0KHRg9C60LA8L3hmOm9wdGlvbj4KCQkJCQkJCTx4ZjpvcHRpb24gdmFsdWU9InVua25vd24iPtCd0LUg0YPQutCw0LfQsNC9PC94ZjpvcHRpb24+CgkJCQkJCTwveGY6c2VsZWN0PgoJCQkJCQk8aW5wdXQgY2xhc3M9ImlucHV0IiB0eXBlPSJ0ZXh0IiBuYW1lPSJjb2xvciIgdmFsdWU9InskZmlsdGVycy5jb2xvcn0iIHBsYWNlaG9sZGVyPSLQntC60YDQsNGBIiAvPgoJCQkJCQk8YnV0dG9uIGNsYXNzPSJidXR0b24iIHR5cGU9InN1Ym1pdCI+0J3QsNC50YLQuDwvYnV0dG9uPgoJCQkJCTwvZGl2PgoJCQkJPC9mb3JtPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iYmxvY2stcm93Ij7Qk9C+0YDQvtC0INCy0LvQsNC00LXQu9GM0YbQsCDQvdC1INC/0YPQsdC70LjQutGD0LXRgtGB0Y8g0LIg0L7QsdGJ0LXQvCDRgdC/0LjRgdC60LUg0L/RgNC+0YTQuNC70LXQuS48L2Rpdj4KCQkJPHhmOmlmIGlzPSIkY2FuQ3JlYXRlIj4KCQkJCTxkaXYgY2xhc3M9ImJsb2NrLXJvdyI+PGEgY2xhc3M9ImJ1dHRvbiBidXR0b24tLXByaW1hcnkiIGhyZWY9Int7IGxpbmsoJ2RvZ3MvYWRkJykgfX0iPtCU0L7QsdCw0LLQuNGC0Ywg0YHQvtCx0LDQutGDPC9hPjwvZGl2PgoJCQk8L3hmOmlmPgoJCQk8eGY6aWYgaXM9IiRkb2dzIj4KCQkJCTx4Zjpmb3JlYWNoIGxvb3A9IiRkb2dzIiB2YWx1ZT0iJGRvZyI+CgkJCQkJPGRpdiBjbGFzcz0iYmxvY2stcm93Ij4KCQkJCQkJPGgzIGNsYXNzPSJjb250ZW50Um93LXRpdGxlIj48YSBocmVmPSJ7eyBsaW5rKCdkb2dzL3ZpZXcnLCBudWxsLCB7J2RvZ19pZCc6ICRkb2cuZG9nX2lkfSkgfX0iPnskZG9nLm5hbWV9PC9hPjwvaDM+CgkJCQkJCTx4ZjppZiBpcz0iJGRvZy5mdWxsX25hbWUiPjxkaXYgY2xhc3M9ImNvbnRlbnRSb3ctbWlub3IiPnskZG9nLmZ1bGxfbmFtZX08L2Rpdj48L3hmOmlmPgoJCQkJCQk8ZGl2IGNsYXNzPSJjb250ZW50Um93LW1pbm9yIj4KCQkJCQkJCTx4ZjppZiBpcz0iJGRvZy5zZXggPT0gJ21hbGUnIj7QmtC+0LHQtdC70YwKCQkJCQkJCTx4ZjplbHNlaWYgaXM9IiRkb2cuc2V4ID09ICdmZW1hbGUnIiAvPtCh0YPQutCwCgkJCQkJCQk8eGY6ZWxzZSAvPtCf0L7QuyDQvdC1INGD0LrQsNC30LDQvQoJCQkJCQkJPC94ZjppZj4KCQkJCQkJCTx4ZjppZiBpcz0iJGRvZy5jb2xvciI+IMK3IHskZG9nLmNvbG9yfTwveGY6aWY+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJPC94Zjpmb3JlYWNoPgoJCQk8eGY6ZWxzZSAvPgoJCQkJPGRpdiBjbGFzcz0iYmxvY2stcm93Ij7Qn9GA0L7RhNC40LvQtdC5INGB0L7QsdCw0Log0L/QviDQstGL0LHRgNCw0L3QvdGL0Lwg0YPRgdC70L7QstC40Y/QvCDQv9C+0LrQsCDQvdC10YIuPC9kaXY+CgkJCTwveGY6aWY+CgkJPC9kaXY+Cgk8L2Rpdj4KPC9kaXY+CgpdXT48L3RlbXBsYXRlPgogIDx0ZW1wbGF0ZSB0eXBlPSJwdWJsaWMiIHRpdGxlPSJuZXdmaV9kb2dfcHJvZmlsZSIgdmVyc2lvbl9pZD0iMTAwMDAxMCIgdmVyc2lvbl9zdHJpbmc9IjEuMC4wIEFscGhhIDEiPjwhW0NEQVRBWwoKPHhmOnRpdGxlPnskZG9nLm5hbWV9PC94Zjp0aXRsZT4KCjxkaXYgY2xhc3M9ImJsb2NrIj4KCTxkaXYgY2xhc3M9ImJsb2NrLWNvbnRhaW5lciI+CgkJPGgyIGNsYXNzPSJibG9jay1oZWFkZXIiPtCf0YDQvtGE0LjQu9GMINGB0L7QsdCw0LrQuDwvaDI+CgkJPGRpdiBjbGFzcz0iYmxvY2stYm9keSI+CgkJCTxkaXYgY2xhc3M9ImJsb2NrLXJvdyI+CgkJCQk8eGY6aWYgaXM9IiRwcmltYXJ5UGhvdG8iPgoJCQkJCTxhIGhyZWY9InskcHJpbWFyeVBob3RvLnVybH0iPgoJCQkJCQk8aW1nIHNyYz0ieyRwcmltYXJ5UGhvdG8udGh1bWJuYWlsX3VybH0iIGFsdD0ieyRwcmltYXJ5UGhvdG8udGl0bGV9IiBzdHlsZT0ibWF4LXdpZHRoOiA0MjBweDsgd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsiIC8+CgkJCQkJPC9hPgoJCQkJPHhmOmVsc2UgLz4KCQkJCQk8c3Ryb25nPtCe0YHQvdC+0LLQvdC+0LUg0YTQvtGC0L4g0L/QvtC60LAg0L3QtSDQstGL0LHRgNCw0L3Qvi48L3N0cm9uZz4KCQkJCTwveGY6aWY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJibG9jay1yb3ciPgoJCQkJPGgzPnskZG9nLm5hbWV9PC9oMz4KCQkJCTx4ZjppZiBpcz0iJGRvZy5mdWxsX25hbWUiPjxwPnskZG9nLmZ1bGxfbmFtZX08L3A+PC94ZjppZj4KCQkJCTx4ZjppZiBpcz0iJGRhdGVPZkJpcnRoIj48cD7QlNCw0YLQsCDRgNC+0LbQtNC10L3QuNGPOiB7JGRhdGVPZkJpcnRofTwvcD48L3hmOmlmPgoJCQkJPHA+0J/QvtC7OgoJCQkJCTx4ZjppZiBpcz0iJGRvZy5zZXggPT0gJ21hbGUnIj7QutC+0LHQtdC70YwKCQkJCQk8eGY6ZWxzZWlmIGlzPSIkZG9nLnNleCA9PSAnZmVtYWxlJyIgLz7RgdGD0LrQsAoJCQkJCTx4ZjplbHNlIC8+0L3QtSDRg9C60LDQt9Cw0L0KCQkJCQk8L3hmOmlmPgoJCQkJPC9wPgoJCQkJPHhmOmlmIGlzPSIkZG9nLmNvbG9yIj48cD7QntC60YDQsNGBOiB7JGRvZy5jb2xvcn08L3A+PC94ZjppZj4KCQkJCTx4ZjppZiBpcz0iJGNhbkVkaXQgJiYgJGRvZy5jaXR5Ij4KCQkJCQk8cD7Qk9C+0YDQvtC0OiB7JGRvZy5jaXR5fTwvcD4KCQkJCTx4ZjplbHNlIC8+CgkJCQkJPHA+0JPQvtGA0L7QtCDQstC70LDQtNC10LvRjNGG0LAg0L3QtSDQv9GD0LHQu9C40LrRg9C10YLRgdGPINCx0LXQtyDQtNC+0YHRgtGD0L/QsCDQstC70LDQtNC10LvRjNGG0LAuPC9wPgoJCQkJPC94ZjppZj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImJsb2NrLXJvdyI+CgkJCQk8eGY6aWYgaXM9IiRvd25lciI+PGEgaHJlZj0ie3sgbGluaygnbWVtYmVycycsICRvd25lcikgfX0iPtCS0LvQsNC00LXQu9C10YY6IHskb3duZXIudXNlcm5hbWV9PC9hPiDCtyA8L3hmOmlmPgoJCQkJPGEgaHJlZj0ie3sgbGluaygnZm9ydW1zJykgfX0iPtCk0L7RgNGD0Lw8L2E+IMK3CgkJCQk8YSBocmVmPSJ7eyBsaW5rKCdldmVudHMnKSB9fSI+0JLRi9GB0YLQsNCy0LrQuCDQuCDQstGB0YLRgNC10YfQuDwvYT4gwrcKCQkJCTxhIGhyZWY9Int7IGxpbmsoJ21lZGlhJykgfX0iPtCT0LDQu9C10YDQtdGPPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iYmxvY2stcm93Ij7QlNC+0L/QvtC70L3QuNGC0LXQu9GM0L3Ri9C1INGE0L7RgtC+0LPRgNCw0YTQuNC4INGF0YDQsNC90Y/RgtGB0Y8g0LIg0LzQtdC00LjQsNCz0LDQu9C10YDQtdC1OyDQvtGB0L3QvtCy0L3QvtC1INGE0L7RgtC+INC/0YDQvtGE0LjQu9GPINCy0YvQsdC40YDQsNC10YLRgdGPINC40Lcg0LzQtdC00LjQsCDQstC70LDQtNC10LvRjNGG0LAuPC9kaXY+CgkJCTx4ZjppZiBpcz0iJGNhbkVkaXQiPgoJCQkJPGRpdiBjbGFzcz0iYmxvY2stcm93Ij48YSBjbGFzcz0iYnV0dG9uIGJ1dHRvbi0tcHJpbWFyeSIgaHJlZj0ie3sgbGluaygnZG9ncy9lZGl0JywgbnVsbCwgeydkb2dfaWQnOiAkZG9nLmRvZ19pZH0pIH19Ij7QoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQv9GA0L7RhNC40LvRjDwvYT48L2Rpdj4KCQkJPC94ZjppZj4KCQk8L2Rpdj4KCTwvZGl2Pgo8L2Rpdj4KCgo8ZGl2IGNsYXNzPSJibG9jay1yb3ciPjxhIGhyZWY9Int7IGxpbmsoJ3BlZGlncmVlL3ZpZXcnLCBudWxsLCB7J2RvZ19pZCc6ICRkb2cuZG9nX2lkfSkgfX0iPtCg0L7QtNC+0YHQu9C+0LLQvdCw0Y88L2E+PC9kaXY+Cl1dPjwvdGVtcGxhdGU+CiAgPHRlbXBsYXRlIHR5cGU9InB1YmxpYyIgdGl0bGU9Im5ld2ZpX2RvZ19lZGl0IiB2ZXJzaW9uX2lkPSIxMDAwMDEwIiB2ZXJzaW9uX3N0cmluZz0iMS4wLjAgQWxwaGEgMSI+PCFbQ0RBVEFbCgo8eGY6dGl0bGU+e3sgJGRvZy5kb2dfaWQgPyAn0KDQtdC00LDQutGC0LjRgNC+0LLQsNGC0Ywg0YHQvtCx0LDQutGDJyA6ICfQlNC+0LHQsNCy0LjRgtGMINGB0L7QsdCw0LrRgycgfX08L3hmOnRpdGxlPgoKPHhmOmZvcm0gYWN0aW9uPSJ7eyBsaW5rKCdkb2dzL3NhdmUnKSB9fSIgYWpheD0idHJ1ZSIgY2xhc3M9ImJsb2NrIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRvZ19pZCIgdmFsdWU9InskZG9nLmRvZ19pZH0iIC8+Cgk8ZGl2IGNsYXNzPSJibG9jay1jb250YWluZXIiPgoJCTxoMiBjbGFzcz0iYmxvY2staGVhZGVyIj57eyAkZG9nLmRvZ19pZCA/ICfQoNC10LTQsNC60YLQuNGA0L7QstCw0YLRjCDQv9GA0L7RhNC40LvRjCcgOiAn0J3QvtCy0YvQuSDQv9GA0L7RhNC40LvRjCcgfX08L2gyPgoJCTxkaXYgY2xhc3M9ImJsb2NrLWJvZHkiPgoJCQk8eGY6dGV4dGJveHJvdyBuYW1lPSJuYW1lIiB2YWx1ZT0ieyRkb2cubmFtZX0iIG1heGxlbmd0aD0iMTAwIiBsYWJlbD0i0JjQvNGPIiAvPgoJCQk8eGY6dGV4dGJveHJvdyBuYW1lPSJmdWxsX25hbWUiIHZhbHVlPSJ7JGRvZy5mdWxsX25hbWV9IiBtYXhsZW5ndGg9IjI1NSIgbGFiZWw9ItCf0L7Qu9C90L7QtSDQuNC80Y8iIC8+CgkJCTx4Zjp0ZXh0Ym94cm93IG5hbWU9ImRhdGVfb2ZfYmlydGgiIHZhbHVlPSJ7JGRhdGVPZkJpcnRofSIgdHlwZT0iZGF0ZSIgbGFiZWw9ItCU0LDRgtCwINGA0L7QttC00LXQvdC40Y8iIC8+CgkJCTx4ZjpzZWxlY3Ryb3cgbmFtZT0ic2V4IiB2YWx1ZT0ieyRkb2cuc2V4fSIgbGFiZWw9ItCf0L7QuyI+CgkJCQk8eGY6b3B0aW9uIHZhbHVlPSJ1bmtub3duIj7QndC1INGD0LrQsNC30LDQvTwveGY6b3B0aW9uPgoJCQkJPHhmOm9wdGlvbiB2YWx1ZT0ibWFsZSI+0JrQvtCx0LXQu9GMPC94ZjpvcHRpb24+CgkJCQk8eGY6b3B0aW9uIHZhbHVlPSJmZW1hbGUiPtCh0YPQutCwPC94ZjpvcHRpb24+CgkJCTwveGY6c2VsZWN0cm93PgoJCQk8eGY6dGV4dGJveHJvdyBuYW1lPSJjb2xvciIgdmFsdWU9InskZG9nLmNvbG9yfSIgbWF4bGVuZ3RoPSIxMDAiIGxhYmVsPSLQntC60YDQsNGBIiAvPgoJCQk8eGY6dGV4dGJveHJvdyBuYW1lPSJjaXR5IiB2YWx1ZT0ieyRkb2cuY2l0eX0iIG1heGxlbmd0aD0iMTAwIiBsYWJlbD0i0JPQvtGA0L7QtCDQstC70LDQtNC10LvRjNGG0LAiCgkJCQlleHBsYWluPSLQk9C+0YDQvtC0INGF0YDQsNC90LjRgtGB0Y8g0LTQu9GPINCy0LvQsNC00LXQu9GM0YbQsCwg0L3QviDQvdC1INC/0L7QutCw0LfRi9Cy0LDQtdGC0YHRjyDQsiDQv9GD0LHQu9C40YfQvdC+0Lwg0YHQv9C40YHQutC1INC4INC/0YPQsdC70LjRh9C90L7QvNGDINC/0L7RgdC10YLQuNGC0LXQu9GOINC/0YDQvtGE0LjQu9GPLiIgLz4KCQkJPHhmOnRleHRib3hyb3cgbmFtZT0icHJpbWFyeV9waG90b19tZWRpYV9pZCIgdmFsdWU9InskZG9nLnByaW1hcnlfcGhvdG9fbWVkaWFfaWR9IiB0eXBlPSJudW1iZXIiIG1pbj0iMCIKCQkJCWxhYmVsPSJJRCDQvtGB0L3QvtCy0L3QvtCz0L4g0YTQvtGC0L4iCgkJCQlleHBsYWluPSLQo9C60LDQttC40YLQtSBJRCDQtNC+0YHRgtGD0L/QvdC+0LPQviDQuNC30L7QsdGA0LDQttC10L3QuNGPINC40Lcg0YHQvtCx0YHRgtCy0LXQvdC90L7QuSDQvNC10LTQuNCw0LPQsNC70LXRgNC10LguINCU0L7Qv9C+0LvQvdC40YLQtdC70YzQvdGL0LUg0YTQvtGC0L4g0L7RgdGC0LDRjtGC0YHRjyDQsiBYRk1HLiIgLz4KCQk8L2Rpdj4KCQk8eGY6c3VibWl0cm93IHN1Ym1pdD0i0KHQvtGF0YDQsNC90LjRgtGMIiAvPgoJPC9kaXY+CjwveGY6Zm9ybT4KCl1dPjwvdGVtcGxhdGU+CjwvdGVtcGxhdGVzPgo=","bytes":6344,"sha256":"18a27d937a4e793451500c93bb91823b89136bc820ecb61b04ffdcb3f9044ba5"},"src/addons/Newfi/Pedigree/Pub/Controller/Pedigree.php":{"b64":"PD9waHAKbmFtZXNwYWNlIE5ld2ZpXFBlZGlncmVlXFB1YlxDb250cm9sbGVyOwoKdXNlIFhGXFB1YlxDb250cm9sbGVyXEFic3RyYWN0Q29udHJvbGxlcjsKCmNsYXNzIFBlZGlncmVlIGV4dGVuZHMgQWJzdHJhY3RDb250cm9sbGVyCnsKICAgIC8vIERlbGliZXJhdGVseSBOT1QgbmFtZWQgc2VydmljZSgpOiBYRlxNdmNcQ29udHJvbGxlcjo6c2VydmljZSgpIGlzIHB1YmxpYyBBUEkuCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gcGVkaWdyZWVTZXJ2aWNlKCk6IFxOZXdmaVxQZWRpZ3JlZVxTZXJ2aWNlXFBlZGlncmVlCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5zZXJ2aWNlKCdOZXdmaVxQZWRpZ3JlZTpQZWRpZ3JlZScpOwogICAgfQoKICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjYW5FZGl0RG9nKGFycmF5ICRkb2cpOiBib29sCiAgICB7CiAgICAgICAgJHZpc2l0b3IgPSBcWEY6OnZpc2l0b3IoKTsKICAgICAgICBpZiAoISR2aXNpdG9yIHx8ICEkdmlzaXRvci0+dXNlcl9pZCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICBpZiAoIWNsYXNzX2V4aXN0cygnTmV3ZmlcXERvZ3NcXFNlcnZpY2VcXERvZ1BvbGljeScpKSB7IHJldHVybiBmYWxzZTsgfQogICAgICAgIGlmICgoaW50KSRkb2dbJ293bmVyX3VzZXJfaWQnXSA9PT0gKGludCkkdmlzaXRvci0+dXNlcl9pZCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgICAgIHJldHVybiAhZW1wdHkoJHZpc2l0b3ItPmlzX2FkbWluKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWN0aW9uSW5kZXgoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+dmlldygnTmV3ZmlcUGVkaWdyZWU6UGVkaWdyZWUnLCAnbmV3ZmlfcGVkaWdyZWVfaW5kZXgnKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWN0aW9uVmlldygpCiAgICB7CiAgICAgICAgJGRvZ0lkID0gJHRoaXMtPmZpbHRlcignZG9nX2lkJywgJ3VpbnQnKTsKICAgICAgICAkc3ZjID0gJHRoaXMtPnBlZGlncmVlU2VydmljZSgpOwogICAgICAgICRkb2cgPSAkc3ZjLT5kb2coJGRvZ0lkKTsKICAgICAgICBpZiAoISRkb2cpIHsgcmV0dXJuICR0aGlzLT5ub3RGb3VuZCgpOyB9CiAgICAgICAgJHBhcmVudHMgPSAkc3ZjLT5wYXJlbnRzKCRkb2dJZCk7CiAgICAgICAgcmV0dXJuICR0aGlzLT52aWV3KCdOZXdmaVxQZWRpZ3JlZTpQZWRpZ3JlZScsICduZXdmaV9wZWRpZ3JlZV92aWV3JywgWwogICAgICAgICAgICAnZG9nJyA9PiAkZG9nLAogICAgICAgICAgICAnc2lyZScgPT4gJHBhcmVudHNbJ3NpcmUnXSwKICAgICAgICAgICAgJ2RhbScgPT4gJHBhcmVudHNbJ2RhbSddLAogICAgICAgICAgICAnb2Zmc3ByaW5nJyA9PiAkc3ZjLT5vZmZzcHJpbmcoJGRvZ0lkKSwKICAgICAgICAgICAgJ2R1cGxpY2F0ZXMnID0+ICRzdmMtPnBvdGVudGlhbER1cGxpY2F0ZXMoJGRvZ0lkKSwKICAgICAgICAgICAgJ2NhbkVkaXQnID0+ICR0aGlzLT5jYW5FZGl0RG9nKCRkb2cpCiAgICAgICAgXSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGFjdGlvbkVkaXQoKQogICAgewogICAgICAgICRkb2dJZCA9ICR0aGlzLT5maWx0ZXIoJ2RvZ19pZCcsICd1aW50Jyk7CiAgICAgICAgJHN2YyA9ICR0aGlzLT5wZWRpZ3JlZVNlcnZpY2UoKTsgJGRvZyA9ICRzdmMtPmRvZygkZG9nSWQpOwogICAgICAgIGlmICghJGRvZykgeyByZXR1cm4gJHRoaXMtPm5vdEZvdW5kKCk7IH0KICAgICAgICBpZiAoISR0aGlzLT5jYW5FZGl0RG9nKCRkb2cpKSB7IHJldHVybiAkdGhpcy0+bm9QZXJtaXNzaW9uKCk7IH0KICAgICAgICAkcGFyZW50cyA9ICRzdmMtPnBhcmVudHMoJGRvZ0lkKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnZpZXcoJ05ld2ZpXFBlZGlncmVlOlBlZGlncmVlJywgJ25ld2ZpX3BlZGlncmVlX2VkaXQnLCBbJ2RvZyc9PiRkb2csJ3NpcmUnPT4kcGFyZW50c1snc2lyZSddLCdkYW0nPT4kcGFyZW50c1snZGFtJ11dKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYWN0aW9uU2F2ZSgpCiAgICB7CiAgICAgICAgJHRoaXMtPmFzc2VydFBvc3RPbmx5KCk7CiAgICAgICAgJGRvZ0lkID0gJHRoaXMtPmZpbHRlcignZG9nX2lkJywgJ3VpbnQnKTsKICAgICAgICAkc3ZjID0gJHRoaXMtPnBlZGlncmVlU2VydmljZSgpOyAkZG9nID0gJHN2Yy0+ZG9nKCRkb2dJZCk7CiAgICAgICAgaWYgKCEkZG9nKSB7IHJldHVybiAkdGhpcy0+bm90Rm91bmQoKTsgfQogICAgICAgIGlmICghJHRoaXMtPmNhbkVkaXREb2coJGRvZykpIHsgcmV0dXJuICR0aGlzLT5ub1Blcm1pc3Npb24oKTsgfQogICAgICAgICRpbnB1dCA9ICR0aGlzLT5maWx0ZXIoWwogICAgICAgICAgICAnc2lyZV9pZCc9Pid1aW50JywnZGFtX2lkJz0+J3VpbnQnLAogICAgICAgICAgICAnc2lyZV9zb3VyY2VfdXJsJz0+J3N0cicsJ2RhbV9zb3VyY2VfdXJsJz0+J3N0cicsCiAgICAgICAgICAgICdzaXJlX2NoZWNrZWRfYXQnPT4ndWludCcsJ2RhbV9jaGVja2VkX2F0Jz0+J3VpbnQnCiAgICAgICAgXSk7CiAgICAgICAgdHJ5IHsgJHN2Yy0+c2F2ZVBhcmVudHMoJGRvZ0lkLCAkaW5wdXQsIChpbnQpXFhGOjp2aXNpdG9yKCktPnVzZXJfaWQpOyB9CiAgICAgICAgY2F0Y2ggKFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gJGUpIHsgcmV0dXJuICR0aGlzLT5lcnJvcigkZS0+Z2V0TWVzc2FnZSgpKTsgfQogICAgICAgIHJldHVybiAkdGhpcy0+cmVkaXJlY3QoJHRoaXMtPmJ1aWxkTGluaygncGVkaWdyZWUvdmlldycsIG51bGwsIFsnZG9nX2lkJz0+JGRvZ0lkXSkpOwogICAgfQp9Cg==","bytes":2749,"sha256":"95c442a992ba253b398cde34993297a29731747e4133e70e31330df45dc1e996"},"src/addons/Newfi/Pedigree/Service/Pedigree.php":{"b64":"PD9waHAKbmFtZXNwYWNlIE5ld2ZpXFBlZGlncmVlXFNlcnZpY2U7Cgp1c2UgWEZcQXBwOwp1c2UgWEZcU2VydmljZVxBYnN0cmFjdFNlcnZpY2U7CgpjbGFzcyBQZWRpZ3JlZSBleHRlbmRzIEFic3RyYWN0U2VydmljZQp7CiAgICBwcm90ZWN0ZWQgJGRiOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdChBcHAgJGFwcCkKICAgIHsKICAgICAgICBwYXJlbnQ6Ol9fY29uc3RydWN0KCRhcHApOwogICAgICAgICR0aGlzLT5kYiA9ICRhcHAtPmRiKCk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGRvZyhpbnQgJGRvZ0lkKTogP2FycmF5CiAgICB7CiAgICAgICAgJHJvdyA9ICR0aGlzLT5kYi0+ZmV0Y2hSb3coIlNFTEVDVCBkb2dfaWQsIG5hbWUsIGZ1bGxfbmFtZSwgZGF0ZV9vZl9iaXJ0aCwgc2V4LCBvd25lcl91c2VyX2lkIEZST00geGZfbmV3ZmlfZG9nIFdIRVJFIGRvZ19pZCA9ID8iLCAkZG9nSWQpOwogICAgICAgIHJldHVybiAkcm93ID86IG51bGw7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHBhcmVudHMoaW50ICRkb2dJZCk6IGFycmF5CiAgICB7CiAgICAgICAgJHJvd3MgPSAkdGhpcy0+ZGItPmZldGNoQWxsKCJTRUxFQ1QgcC5yb2xlLCBwLnBhcmVudF9kb2dfaWQsIHAuc291cmNlX3VybCwgcC5jaGVja2VkX2F0LCBkLm5hbWUsIGQuZnVsbF9uYW1lLCBkLmRhdGVfb2ZfYmlydGgsIGQuc2V4IEZST00geGZfbmV3ZmlfcGVkaWdyZWVfcGFyZW50IHAgSk9JTiB4Zl9uZXdmaV9kb2cgZCBPTiBkLmRvZ19pZD1wLnBhcmVudF9kb2dfaWQgV0hFUkUgcC5jaGlsZF9kb2dfaWQ9PyBPUkRFUiBCWSBwLnJvbGUiLCAkZG9nSWQpOwogICAgICAgICRvdXQgPSBbJ3NpcmUnID0+IG51bGwsICdkYW0nID0+IG51bGxdOwogICAgICAgIGZvcmVhY2ggKCRyb3dzIGFzICRyb3cpIHsgJG91dFskcm93Wydyb2xlJ11dID0gJHJvdzsgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBvZmZzcHJpbmcoaW50ICRkb2dJZCk6IGFycmF5CiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5kYi0+ZmV0Y2hBbGwoIlNFTEVDVCBwLnJvbGUsIHAuY2hpbGRfZG9nX2lkLCBkLm5hbWUsIGQuZnVsbF9uYW1lLCBkLmRhdGVfb2ZfYmlydGgsIGQuc2V4IEZST00geGZfbmV3ZmlfcGVkaWdyZWVfcGFyZW50IHAgSk9JTiB4Zl9uZXdmaV9kb2cgZCBPTiBkLmRvZ19pZD1wLmNoaWxkX2RvZ19pZCBXSEVSRSBwLnBhcmVudF9kb2dfaWQ9PyBPUkRFUiBCWSBkLmRhdGVfb2ZfYmlydGgsIGQuZG9nX2lkIiwgJGRvZ0lkKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gcG90ZW50aWFsRHVwbGljYXRlcyhpbnQgJGRvZ0lkKTogYXJyYXkKICAgIHsKICAgICAgICAkZG9nID0gJHRoaXMtPmRvZygkZG9nSWQpOwogICAgICAgIGlmICghJGRvZykgeyByZXR1cm4gW107IH0KICAgICAgICAkZnVsbCA9IHRyaW0oKHN0cmluZykkZG9nWydmdWxsX25hbWUnXSk7CiAgICAgICAgJGRvYiA9IChpbnQpJGRvZ1snZGF0ZV9vZl9iaXJ0aCddOwogICAgICAgICRzZXggPSBzdHJ0b2xvd2VyKHRyaW0oKHN0cmluZykkZG9nWydzZXgnXSkpOwogICAgICAgIGlmICgkZnVsbCA9PT0gJycgfHwgJGRvYiA8PSAwIHx8ICFpbl9hcnJheSgkc2V4LCBbJ21hbGUnLCdmZW1hbGUnXSwgdHJ1ZSkpIHsgcmV0dXJuIFtdOyB9CiAgICAgICAgcmV0dXJuICR0aGlzLT5kYi0+ZmV0Y2hBbGwoIlNFTEVDVCBkb2dfaWQsIG5hbWUsIGZ1bGxfbmFtZSwgZGF0ZV9vZl9iaXJ0aCwgc2V4IEZST00geGZfbmV3ZmlfZG9nIFdIRVJFIGRvZ19pZDw+PyBBTkQgTE9XRVIoVFJJTShmdWxsX25hbWUpKT1MT1dFUihUUklNKD8pKSBBTkQgZGF0ZV9vZl9iaXJ0aD0/IEFORCBMT1dFUihzZXgpPT8gT1JERVIgQlkgZG9nX2lkIiwgWyRkb2dJZCwgJGZ1bGwsICRkb2IsICRzZXhdKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gdmFsaWRhdGVTb3VyY2UoP3N0cmluZyAkc291cmNlVXJsLCBpbnQgJGNoZWNrZWRBdCk6IHZvaWQKICAgIHsKICAgICAgICAkc291cmNlVXJsID0gdHJpbSgoc3RyaW5nKSRzb3VyY2VVcmwpOwogICAgICAgIGlmICgkc291cmNlVXJsID09PSAnJykgeyByZXR1cm47IH0KICAgICAgICBpZiAoc3RyaXBvcygkc291cmNlVXJsLCAnaHR0cHM6Ly8nKSAhPT0gMCkgeyB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignc291cmNlX3VybF9tdXN0X2JlX2h0dHBzJyk7IH0KICAgICAgICBpZiAoJGNoZWNrZWRBdCA8PSAwKSB7IHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdjaGVja2VkX2F0X3JlcXVpcmVkJyk7IH0KICAgIH0KCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYXNzZXJ0UGFyZW50KGludCAkY2hpbGRJZCwgc3RyaW5nICRyb2xlLCBpbnQgJHBhcmVudElkLCA/c3RyaW5nICRzb3VyY2VVcmwsIGludCAkY2hlY2tlZEF0KTogdm9pZAogICAgewogICAgICAgIGlmICghaW5fYXJyYXkoJHJvbGUsIFsnc2lyZScsJ2RhbSddLCB0cnVlKSkgeyB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignaW52YWxpZF9yb2xlJyk7IH0KICAgICAgICBpZiAoJHBhcmVudElkIDw9IDApIHsgcmV0dXJuOyB9CiAgICAgICAgaWYgKCRjaGlsZElkID09PSAkcGFyZW50SWQpIHsgdGhyb3cgbmV3IFxJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24oJ3NlbGZfcGFyZW50Jyk7IH0KICAgICAgICAkY2hpbGQgPSAkdGhpcy0+ZG9nKCRjaGlsZElkKTsgJHBhcmVudCA9ICR0aGlzLT5kb2coJHBhcmVudElkKTsKICAgICAgICBpZiAoISRjaGlsZCB8fCAhJHBhcmVudCkgeyB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignZG9nX25vdF9mb3VuZCcpOyB9CiAgICAgICAgJHNleCA9IHN0cnRvbG93ZXIodHJpbSgoc3RyaW5nKSRwYXJlbnRbJ3NleCddKSk7CiAgICAgICAgaWYgKCRyb2xlID09PSAnc2lyZScgJiYgJHNleCAhPT0gJycgJiYgJHNleCAhPT0gJ3Vua25vd24nICYmICRzZXggIT09ICdtYWxlJykgeyB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignc2lyZV9zZXhfbWlzbWF0Y2gnKTsgfQogICAgICAgIGlmICgkcm9sZSA9PT0gJ2RhbScgJiYgJHNleCAhPT0gJycgJiYgJHNleCAhPT0gJ3Vua25vd24nICYmICRzZXggIT09ICdmZW1hbGUnKSB7IHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdkYW1fc2V4X21pc21hdGNoJyk7IH0KICAgICAgICAkdGhpcy0+dmFsaWRhdGVTb3VyY2UoJHNvdXJjZVVybCwgJGNoZWNrZWRBdCk7CiAgICAgICAgaWYgKCR0aGlzLT53b3VsZEN5Y2xlKCRjaGlsZElkLCAkcGFyZW50SWQpKSB7IHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdhbmNlc3RyeV9jeWNsZScpOyB9CiAgICB9CgogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHdvdWxkQ3ljbGUoaW50ICRjaGlsZElkLCBpbnQgJHBhcmVudElkKTogYm9vbAogICAgewogICAgICAgICRzZWVuID0gW107ICRzdGFjayA9IFskcGFyZW50SWRdOwogICAgICAgIHdoaWxlICgkc3RhY2spCiAgICAgICAgewogICAgICAgICAgICAkaWQgPSAoaW50KWFycmF5X3BvcCgkc3RhY2spOwogICAgICAgICAgICBpZiAoJGlkID09PSAkY2hpbGRJZCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgICAgICAgICBpZiAoaXNzZXQoJHNlZW5bJGlkXSkpIHsgY29udGludWU7IH0KICAgICAgICAgICAgJHNlZW5bJGlkXSA9IHRydWU7CiAgICAgICAgICAgICRyb3dzID0gJHRoaXMtPmRiLT5mZXRjaEFsbCgiU0VMRUNUIHBhcmVudF9kb2dfaWQgRlJPTSB4Zl9uZXdmaV9wZWRpZ3JlZV9wYXJlbnQgV0hFUkUgY2hpbGRfZG9nX2lkPT8iLCAkaWQpOwogICAgICAgICAgICBmb3JlYWNoICgkcm93cyBhcyAkcm93KSB7ICRzdGFja1tdID0gKGludCkkcm93WydwYXJlbnRfZG9nX2lkJ107IH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzYXZlUGFyZW50cyhpbnQgJGNoaWxkSWQsIGFycmF5ICRpbnB1dCwgaW50ICR1c2VySWQpOiB2b2lkCiAgICB7CiAgICAgICAgaWYgKCEkdGhpcy0+ZG9nKCRjaGlsZElkKSkgeyB0aHJvdyBuZXcgXEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbignY2hpbGRfbm90X2ZvdW5kJyk7IH0KICAgICAgICAkc2lyZUlkID0gKGludCkoJGlucHV0WydzaXJlX2lkJ10gPz8gMCk7ICRkYW1JZCA9IChpbnQpKCRpbnB1dFsnZGFtX2lkJ10gPz8gMCk7CiAgICAgICAgaWYgKCRzaXJlSWQgPiAwICYmICRkYW1JZCA+IDAgJiYgJHNpcmVJZCA9PT0gJGRhbUlkKSB7IHRocm93IG5ldyBcSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCdzYW1lX3NpcmVfZGFtJyk7IH0KICAgICAgICAkc2lyZVVybCA9IHRyaW0oKHN0cmluZykoJGlucHV0WydzaXJlX3NvdXJjZV91cmwnXSA/PyAnJykpOyAkZGFtVXJsID0gdHJpbSgoc3RyaW5nKSgkaW5wdXRbJ2RhbV9zb3VyY2VfdXJsJ10gPz8gJycpKTsKICAgICAgICAkc2lyZUNoZWNrZWQgPSAoaW50KSgkaW5wdXRbJ3NpcmVfY2hlY2tlZF9hdCddID8/IDApOyAkZGFtQ2hlY2tlZCA9IChpbnQpKCRpbnB1dFsnZGFtX2NoZWNrZWRfYXQnXSA/PyAwKTsKICAgICAgICAvLyBWYWxpZGF0ZSBCT1RIIHJlcXVlc3RzIGJlZm9yZSBmaXJzdCB3cml0ZS4KICAgICAgICAkdGhpcy0+YXNzZXJ0UGFyZW50KCRjaGlsZElkLCAnc2lyZScsICRzaXJlSWQsICRzaXJlVXJsLCAkc2lyZUNoZWNrZWQpOwogICAgICAgICR0aGlzLT5hc3NlcnRQYXJlbnQoJGNoaWxkSWQsICdkYW0nLCAkZGFtSWQsICRkYW1VcmwsICRkYW1DaGVja2VkKTsKICAgICAgICAkbm93ID0gdGltZSgpOwogICAgICAgICR0aGlzLT5kYi0+YmVnaW5UcmFuc2FjdGlvbigpOwogICAgICAgIHRyeQogICAgICAgIHsKICAgICAgICAgICAgZm9yZWFjaCAoW1snc2lyZScsJHNpcmVJZCwkc2lyZVVybCwkc2lyZUNoZWNrZWRdLCBbJ2RhbScsJGRhbUlkLCRkYW1VcmwsJGRhbUNoZWNrZWRdXSBhcyAkeCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgWyRyb2xlLCRwYXJlbnRJZCwkdXJsLCRjaGVja2VkXSA9ICR4OwogICAgICAgICAgICAgICAgaWYgKCRwYXJlbnRJZCA8PSAwKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5kYi0+ZGVsZXRlKCd4Zl9uZXdmaV9wZWRpZ3JlZV9wYXJlbnQnLCAnY2hpbGRfZG9nX2lkPT8gQU5EIHJvbGU9PycsIFskY2hpbGRJZCwkcm9sZV0pOwogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJGV4aXN0aW5nID0gJHRoaXMtPmRiLT5mZXRjaE9uZSgiU0VMRUNUIGNyZWF0ZWRfYXQgRlJPTSB4Zl9uZXdmaV9wZWRpZ3JlZV9wYXJlbnQgV0hFUkUgY2hpbGRfZG9nX2lkPT8gQU5EIHJvbGU9PyIsIFskY2hpbGRJZCwkcm9sZV0pOwogICAgICAgICAgICAgICAgJGNyZWF0ZWQgPSAkZXhpc3RpbmcgPyAoaW50KSRleGlzdGluZyA6ICRub3c7CiAgICAgICAgICAgICAgICAkdGhpcy0+ZGItPnF1ZXJ5KCJJTlNFUlQgSU5UTyB4Zl9uZXdmaV9wZWRpZ3JlZV9wYXJlbnQgKGNoaWxkX2RvZ19pZCxyb2xlLHBhcmVudF9kb2dfaWQsc291cmNlX3VybCxjaGVja2VkX2F0LGNyZWF0ZWRfYnlfdXNlcl9pZCxjcmVhdGVkX2F0LHVwZGF0ZWRfYXQpIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/KSBPTiBEVVBMSUNBVEUgS0VZIFVQREFURSBwYXJlbnRfZG9nX2lkPVZBTFVFUyhwYXJlbnRfZG9nX2lkKSxzb3VyY2VfdXJsPVZBTFVFUyhzb3VyY2VfdXJsKSxjaGVja2VkX2F0PVZBTFVFUyhjaGVja2VkX2F0KSxjcmVhdGVkX2J5X3VzZXJfaWQ9VkFMVUVTKGNyZWF0ZWRfYnlfdXNlcl9pZCksdXBkYXRlZF9hdD1WQUxVRVModXBkYXRlZF9hdCkiLCBbJGNoaWxkSWQsJHJvbGUsJHBhcmVudElkLCR1cmwgIT09ICcnID8gJHVybCA6IG51bGwsJGNoZWNrZWQsJHVzZXJJZCwkY3JlYXRlZCwkbm93XSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHRoaXMtPmRiLT5jb21taXQoKTsKICAgICAgICB9CiAgICAgICAgY2F0Y2ggKFxUaHJvd2FibGUgJGUpIHsgJHRoaXMtPmRiLT5yb2xsYmFjaygpOyB0aHJvdyAkZTsgfQogICAgfQp9Cg==","bytes":6067,"sha256":"a3d26f3b9ab211f1eaded83a9dc6b935c5c94f91355be7bd1f8490ae82285eb2"},"src/addons/Newfi/Pedigree/Setup.php":{"b64":"PD9waHAKbmFtZXNwYWNlIE5ld2ZpXFBlZGlncmVlOwoKdXNlIFhGXEFkZE9uXEFic3RyYWN0U2V0dXA7CnVzZSBYRlxEYlxTY2hlbWFcQ3JlYXRlOwoKY2xhc3MgU2V0dXAgZXh0ZW5kcyBBYnN0cmFjdFNldHVwCnsKICAgIHB1YmxpYyBmdW5jdGlvbiBpbnN0YWxsKGFycmF5ICRzdGVwUGFyYW1zID0gW10pCiAgICB7CiAgICAgICAgJHRoaXMtPnNjaGVtYU1hbmFnZXIoKS0+Y3JlYXRlVGFibGUoJ3hmX25ld2ZpX3BlZGlncmVlX3BhcmVudCcsIGZ1bmN0aW9uKENyZWF0ZSAkdGFibGUpCiAgICAgICAgewogICAgICAgICAgICAkdGFibGUtPmFkZENvbHVtbignY2hpbGRfZG9nX2lkJywgJ2ludCcpLT51bnNpZ25lZCgpOwogICAgICAgICAgICAkdGFibGUtPmFkZENvbHVtbigncm9sZScsICd2YXJjaGFyJywgOCk7CiAgICAgICAgICAgICR0YWJsZS0+YWRkQ29sdW1uKCdwYXJlbnRfZG9nX2lkJywgJ2ludCcpLT51bnNpZ25lZCgpOwogICAgICAgICAgICAkdGFibGUtPmFkZENvbHVtbignc291cmNlX3VybCcsICd2YXJjaGFyJywgMjA0OCktPm51bGxhYmxlKCk7CiAgICAgICAgICAgICR0YWJsZS0+YWRkQ29sdW1uKCdjaGVja2VkX2F0JywgJ2ludCcpLT51bnNpZ25lZCgpLT5zZXREZWZhdWx0KDApOwogICAgICAgICAgICAkdGFibGUtPmFkZENvbHVtbignY3JlYXRlZF9ieV91c2VyX2lkJywgJ2ludCcpLT51bnNpZ25lZCgpLT5zZXREZWZhdWx0KDApOwogICAgICAgICAgICAkdGFibGUtPmFkZENvbHVtbignY3JlYXRlZF9hdCcsICdpbnQnKS0+dW5zaWduZWQoKS0+c2V0RGVmYXVsdCgwKTsKICAgICAgICAgICAgJHRhYmxlLT5hZGRDb2x1bW4oJ3VwZGF0ZWRfYXQnLCAnaW50JyktPnVuc2lnbmVkKCktPnNldERlZmF1bHQoMCk7CiAgICAgICAgICAgICR0YWJsZS0+YWRkUHJpbWFyeUtleShbJ2NoaWxkX2RvZ19pZCcsICdyb2xlJ10pOwogICAgICAgICAgICAkdGFibGUtPmFkZEtleSgncGFyZW50X2RvZ19pZCcpOwogICAgICAgIH0pOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiB1cGdyYWRlKGFycmF5ICRzdGVwUGFyYW1zID0gW10pCiAgICB7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIHVuaW5zdGFsbChhcnJheSAkc3RlcFBhcmFtcyA9IFtdKQogICAgewogICAgICAgICR0aGlzLT5zY2hlbWFNYW5hZ2VyKCktPmRyb3BUYWJsZSgneGZfbmV3ZmlfcGVkaWdyZWVfcGFyZW50Jyk7CiAgICB9Cn0K","bytes":1200,"sha256":"11d4b72d6cba436f76fa9c95b01f0b249b950a6e1588494d86deffbd5caa1dae"}},"paths":["src/addons/Newfi/Dogs/Entity/Dog.php","src/addons/Newfi/Dogs/Pub/Controller/Dogs.php","src/addons/Newfi/Dogs/Pub/View/Dogs.php","src/addons/Newfi/Dogs/Service/DogPolicy.php","src/addons/Newfi/Dogs/Setup.php","src/addons/Newfi/Dogs/_data/routes.xml","src/addons/Newfi/Dogs/_data/templates.xml","src/addons/Newfi/Dogs/addon.json","src/addons/Newfi/Pedigree/Pub/Controller/Pedigree.php","src/addons/Newfi/Pedigree/Pub/View/Pedigree.php","src/addons/Newfi/Pedigree/Repository/Pedigree.php","src/addons/Newfi/Pedigree/Service/Pedigree.php","src/addons/Newfi/Pedigree/Setup.php","src/addons/Newfi/Pedigree/_data/routes.xml","src/addons/Newfi/Pedigree/_data/templates.xml","src/addons/Newfi/Pedigree/addon.json"]} -MED345_ERROR_CLASS=Error -MED345_ERROR_SHA=ae9f4a1eea01890cb6b31e8cbb0fe33f7aa527db2b4e8b50f3c5f11fcafdfb27 -DECISION=HOLD_MEDICAL218_AUDIT345 -NEXT_GATE=RECONCILE_MEDICAL218_AUDIT345_EXACT_FAILURE -CHANGES_MADE=False -ROLLBACK_STARTED=False -ROLLBACK_RESTORED=None -MUTATION_OUTCOME=NO_MUTATION -HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"NEWFI-260921-NEWFDOM-MEDICAL218-AUDIT345","rollback_restored":null,"rollback_started":false,"status":"FAIL","version":1} -MED345_END=true +SIGNALBOT052FIXPREP4_RESULT={"exact_match_count":1,"items":[{"branch":"cr-2026-0105-demonov-shadow-orchestrator","clean":true,"git":true,"head":"559948bcb6baead49a47d9953b0cc0090e332fd7","head_match":false,"path":"/root/8020-demonov-shadow-bot","source_match":false},{"branch":"signalbot-260917-reconnect-reconciliation","clean":true,"git":true,"head":"749073ae0f894debc06fb0ffbf7a84abf9da531f","head_match":true,"path":"/root/.local/share/signalbot-dev/signalbot-260917-reconnect-reconciliation","source":{"bytes":12078,"sha256":"023ce0a041b50b866a48d9f752bd80479a34789d82f73c81d18246ed8871ef8e"},"source_match":true,"test":{"bytes":10463,"sha256":"bebdd9c2875d2c63a0ac27d89eefa7f1c36c83c067aa8b472c0616ac470dd2a2"}},{"branch":"cr-2026-0106-projection-node-binding","clean":true,"git":true,"head":"bc2570f71c69140acd0a80e25e6d82d2d4adc4f4","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0106","source_match":false},{"branch":"cr-2026-0107-production-8020-producer","clean":true,"git":true,"head":"3d59766ee08181e3124e6e86e48421f1aa3a2635","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0107","source_match":false},{"branch":"cr-2026-0108-durable-producer-outbox","clean":true,"git":true,"head":"9fe67eaaf80009899e45ae31096ba5d307cfde4c","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0108","source_match":false},{"branch":"cr-2026-0109-outbox-shadow-delivery","clean":true,"git":true,"head":"578e6d40822469b89a29aede4d01e32628744450","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0109","source_match":false},{"branch":"cr-2026-0110-shadow-deployment","clean":true,"git":true,"head":"59b226007bc3b506c9ab9ac5d1ad10745062e557","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0110","source_match":false},{"branch":"cr-2026-0111-technical-shadow-seal","clean":true,"git":true,"head":"c7fd5428eb0d535905468c5989f28ce0444c2c01","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0111","source_match":false},{"branch":"cr-2026-0112-live-prospective-policy","clean":true,"git":true,"head":"c9a88e1953b1f82554ad363dce814cf84507ce65","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0112","source_match":false},{"branch":"cr-2026-0113-multiarm-fsm-market-registry","clean":true,"git":true,"head":"4e302a6b7ec50966e303e034bbf8d31a577753bd","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0113","source_match":false},{"branch":"cr-2026-0114-live-feeds-russian-email","clean":true,"git":true,"head":"5a8a0db00c095e1427b3c17cbb9f7c683cd5c014","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0114","source_match":false},{"branch":"cr-2026-0115-live-prospective-cutover","clean":true,"git":true,"head":"18132ee2a0f70a7bc319e51d197ff99184a7961a","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0115","source_match":false},{"branch":"cr-2026-0116-reliability-finality","clean":true,"deployer":{"bytes":31515,"sha256":"3ca98e06c9ca24ed0e2e96a8b882a2f9c66451f31b7429faff56c241ec700a20"},"git":true,"head":"ac7094a76ddc06f376d71a76432af7c2dd10ec7d","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0116","source_match":false},{"branch":"research/cr0117-signal-quality-roadmap-20260902","clean":true,"git":true,"head":"d33cb4efc544a96b8bbb46bed1590413cca14628","head_match":false,"path":"/root/8020-demonov-shadow-bot-cr0117-roadmap","source_match":false},{"branch":"docs-signal-bot-roadmap-cr0116-cr0119","clean":true,"git":true,"head":"39d3b6af08621f1ad9749a24fc54bc022b3ad9be","head_match":false,"path":"/root/8020-demonov-shadow-bot-roadmap","source_match":false}],"matches":[{"branch":"signalbot-260917-reconnect-reconciliation","clean":true,"git":true,"head":"749073ae0f894debc06fb0ffbf7a84abf9da531f","head_match":true,"path":"/root/.local/share/signalbot-dev/signalbot-260917-reconnect-reconciliation","source":{"bytes":12078,"sha256":"023ce0a041b50b866a48d9f752bd80479a34789d82f73c81d18246ed8871ef8e"},"source_match":true,"test":{"bytes":10463,"sha256":"bebdd9c2875d2c63a0ac27d89eefa7f1c36c83c067aa8b472c0616ac470dd2a2"}}]} +TASK_RESULT=PASS_SIGNALBOT_052FIXPREP4_EXACT_WORKTREE_PROVEN +HOMELAB_RESULT_CONTRACT={"version":1,"command_id":"SIGNALBOT-260921-SCIENTIFIC-WORKTREE-LOCATOR-052FIXPREP4","status":"OK","changes_made":false,"rollback_started":false,"rollback_restored":null} OUTPUT_END CHAT_OUTPUT_END