{
    "id": "event_06b0fefe666cc6c8",
    "timestamp": 1777292681,
    "branch_id": "main",
    "parent_event_id": "event_3c01b1f1ba5c5d08",
    "type": "patch_apply",
    "label": "Fiabilise detection paiement livreur",
    "source": "patch",
    "author": "CNOC",
    "session_id": "43305eb2706f6eee2531a5a173355a18",
    "payload": [
        {
            "path": "caisse-aqp/public/api/_lib/onlinePayments.php",
            "kind": "file",
            "before": {
                "exists": true,
                "kind": "file",
                "size": 8570,
                "sha1": "ac233f109551d1f896d21e4bac85e6146ec3e196",
                "content_b64": "PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CgovKiBkb2MtcHJvamVjdCB8IGNhaXNzZS1hcXAvcHVibGljL2FwaS9fbGliL29ubGluZVBheW1lbnRzLnBocCB8IEZvdXJuaXQgbOKAmWFjY8OocyBjZW50cmFsaXPDqSBhdXggcGFpZW1lbnRzIGVuIGxpZ25lIHZhbGlkw6lzLCBsZXVycyBsaWJlbGzDqXMgZXQgbGV1cnMgbW9udGFudHMgYWdyw6lnw6lzIHBhciBjb21tYW5kZS9wb2ludCBkZSB2ZW50ZSBhZmluIGTigJlhbGltZW50ZXIgbGEgdmFsaWRhdGlvbiBkZSByw6hnbGVtZW50IGV0IGxlIHJhdHRyYXBhZ2UgZOKAmWltcHJlc3Npb24gYXV0b21hdGlxdWUgZGVzIHRpY2tldHMgY2xpZW50cy4gfCBFeHBvc2U6IG9ubGluZVBheW1lbnRzT3JkZXJJbmZvRm9yU3RvcmUsIGZvcm1hdF92YWRzX3RyYW5zX2RhdGUsIGdldF9zdWNjZXNzZnVsX29ubGluZV9wYXltZW50c19ieV9vcmRlcl9pZCwgZ2V0X3N1Y2Nlc3NmdWxfb25saW5lX3BheW1lbnRfdG90YWxzX2J5X29yZGVyX2lkLCBoYXNfc3VjY2Vzc2Z1bF9vbmxpbmVfcGF5bWVudF9mb3Jfb3JkZXIgfCBEw6lwZW5kIGRlOiBQRE8sIGNvbmZpZy5waHAsIHBvc19wYXkgfCBJbXBhY3RlOiBsZWN0dXJlIGRlcyBwYWllbWVudHMsIGFmZmljaGFnZSBkZXMgZW5jYWlzc2VtZW50cywgbG9naXF1ZSBkZSB2YWxpZGF0aW9uIGRlIHLDqGdsZW1lbnQsIGTDqXRlY3Rpb24gZGVzIGNvbW1hbmRlcyBpbnTDqWdyYWxlbWVudCBwYXnDqWVzIHwgVGFibGVzOiBwb3NfcGF5KHZhZHNfb3JkZXJfaWQsIHZhZHNfYW1vdW50LCB2YWRzX3RyYW5zX2RhdGUsIHZhZHNfdHJhbnNfaWQsIHZhZHNfcmVzdWx0LCB2YWRzX29yZGVyX2luZm8pICovCi8qKgogKiBwdWJsaWMvYXBpL19saWIvb25saW5lUGF5bWVudHMucGhwCiAqCiAqIFLDqWN1cMOpcmF0aW9uIGRlcyBwYWllbWVudHMgZW4gbGlnbmUgKHBvc19wYXkpIGdyb3Vww6llLgogKiAtIEZpbHRyZSAic3VjY8OocyIgOiB2YWRzX3Jlc3VsdCA9ICcwMCcKICogLSBGaWx0cmUgcHJvamV0L1BEViA6IHZhZHNfb3JkZXJfaW5mbyA9ICRvcmRlckluZm8gKGTDqXBlbmQgZHUgc3RvcmUgbGFufHBlbCA6IExBTkNPTiAvIFBFTElTU0FOTkUgZW4gYmRkKQogKi8KCi8qKgogKiBNYXBwaW5nIHN0b3JlIC0+IHZhZHNfb3JkZXJfaW5mby4KICogUmVjb21tYW5kw6k6IGTDqWZpbmlyIE9OTElORV9QQVlNRU5UU19PUkRFUl9JTkZPX01BUCBkYW5zIGNvbmZpZy5waHAsIGV4OgogKiAgIGRlZmluZSgnT05MSU5FX1BBWU1FTlRTX09SREVSX0lORk9fTUFQJywgWydsYW4nID0+ICdMQU5DT04nLCAncGVsJyA9PiAnUEVMSVNTQU5ORSddKTsKICoKICogRmFsbGJhY2tzIHN1cHBvcnTDqXMgKHNpIGJlc29pbikgOgogKiAtIGRlZmluZSgnTEFOX09SREVSX0lORk8nLCAnLi4uJyksIGRlZmluZSgnUEVMX09SREVSX0lORk8nLCAnLi4uJykKICogLSBkZWZpbmUoJ09SREVSX0lORk9fTEFOJywgJy4uLicpLCBkZWZpbmUoJ09SREVSX0lORk9fUEVMJywgJy4uLicpCiAqLwpmdW5jdGlvbiBvbmxpbmVQYXltZW50c09yZGVySW5mb0ZvclN0b3JlKHN0cmluZyAkc3RvcmUpOiA/c3RyaW5nIHsKICAkcyA9IHN0cnRvbG93ZXIodHJpbSgkc3RvcmUpKTsKICBpZiAoJHMgIT09ICdsYW4nICYmICRzICE9PSAncGVsJykgcmV0dXJuIG51bGw7CgogIGlmIChkZWZpbmVkKCdPTkxJTkVfUEFZTUVOVFNfT1JERVJfSU5GT19NQVAnKSkgewogICAgJG0gPSBjb25zdGFudCgnT05MSU5FX1BBWU1FTlRTX09SREVSX0lORk9fTUFQJyk7CiAgICBpZiAoaXNfYXJyYXkoJG0pICYmIGlzc2V0KCRtWyRzXSkgJiYgaXNfc3RyaW5nKCRtWyRzXSkgJiYgJG1bJHNdICE9PSAnJykgewogICAgICByZXR1cm4gKHN0cmluZykkbVskc107CiAgICB9CiAgfQoKICBpZiAoJHMgPT09ICdsYW4nKSB7CiAgICBpZiAoZGVmaW5lZCgnTEFOX09SREVSX0lORk8nKSAmJiBpc19zdHJpbmcoY29uc3RhbnQoJ0xBTl9PUkRFUl9JTkZPJykpICYmIGNvbnN0YW50KCdMQU5fT1JERVJfSU5GTycpICE9PSAnJykgcmV0dXJuIChzdHJpbmcpY29uc3RhbnQoJ0xBTl9PUkRFUl9JTkZPJyk7CiAgICBpZiAoZGVmaW5lZCgnT1JERVJfSU5GT19MQU4nKSAmJiBpc19zdHJpbmcoY29uc3RhbnQoJ09SREVSX0lORk9fTEFOJykpICYmIGNvbnN0YW50KCdPUkRFUl9JTkZPX0xBTicpICE9PSAnJykgcmV0dXJuIChzdHJpbmcpY29uc3RhbnQoJ09SREVSX0lORk9fTEFOJyk7CiAgfQogIGlmICgkcyA9PT0gJ3BlbCcpIHsKICAgIGlmIChkZWZpbmVkKCdQRUxfT1JERVJfSU5GTycpICYmIGlzX3N0cmluZyhjb25zdGFudCgnUEVMX09SREVSX0lORk8nKSkgJiYgY29uc3RhbnQoJ1BFTF9PUkRFUl9JTkZPJykgIT09ICcnKSByZXR1cm4gKHN0cmluZyljb25zdGFudCgnUEVMX09SREVSX0lORk8nKTsKICAgIGlmIChkZWZpbmVkKCdPUkRFUl9JTkZPX1BFTCcpICYmIGlzX3N0cmluZyhjb25zdGFudCgnT1JERVJfSU5GT19QRUwnKSkgJiYgY29uc3RhbnQoJ09SREVSX0lORk9fUEVMJykgIT09ICcnKSByZXR1cm4gKHN0cmluZyljb25zdGFudCgnT1JERVJfSU5GT19QRUwnKTsKICB9CgogIC8vIERlZmF1bHRzIERCIChzdHJpY3QgYnVzaW5lc3MgcnVsZSk6IExBTkNPTiAvIFBFTElTU0FOTkUKICBpZiAoJHMgPT09ICdsYW4nKSByZXR1cm4gJ0xBTkNPTic7CiAgaWYgKCRzID09PSAncGVsJykgcmV0dXJuICdQRUxJU1NBTk5FJzsKICByZXR1cm4gbnVsbDsKfQoKLyoqCiAqIFRlbnRlIGRlIGZvcm1hdGVyIHZhZHNfdHJhbnNfZGF0ZSAoc291dmVudCBhdSBmb3JtYXQgWVlZWU1NRERISE1NU1MpLgogKiBSZXRvdXJuZSB1bmUgY2hhw65uZSBsaXNpYmxlLCBzaW5vbiBsYSB2YWxldXIgYnJ1dGUuCiAqLwpmdW5jdGlvbiBmb3JtYXRfdmFkc190cmFuc19kYXRlKCRyYXcpOiA/c3RyaW5nIHsKICBpZiAoJHJhdyA9PT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgJHMgPSAoc3RyaW5nKSRyYXc7CgogIGlmIChwcmVnX21hdGNoKCcvXlxkezE0fSQvJywgJHMpKSB7CiAgICAkZHQgPSBEYXRlVGltZTo6Y3JlYXRlRnJvbUZvcm1hdCgnWW1kSGlzJywgJHMsIG5ldyBEYXRlVGltZVpvbmUoJ0V1cm9wZS9QYXJpcycpKTsKICAgIGlmICgkZHQgaW5zdGFuY2VvZiBEYXRlVGltZSkgcmV0dXJuICRkdC0+Zm9ybWF0KCdkL20vWSBIOmk6cycpOwogIH0KICBpZiAocHJlZ19tYXRjaCgnL15cZHs4fSQvJywgJHMpKSB7CiAgICAkZHQgPSBEYXRlVGltZTo6Y3JlYXRlRnJvbUZvcm1hdCgnWW1kJywgJHMsIG5ldyBEYXRlVGltZVpvbmUoJ0V1cm9wZS9QYXJpcycpKTsKICAgIGlmICgkZHQgaW5zdGFuY2VvZiBEYXRlVGltZSkgcmV0dXJuICRkdC0+Zm9ybWF0KCdkL20vWScpOwogIH0KICByZXR1cm4gJHM7Cn0KCi8qKgogKiBSZXRvdXJuZSB1biB0YWJsZWF1IGluZGV4w6kgcGFyIG9yZGVySWQgOgogKiBbCiAqICAgMTIzID0+IFsKICogICAgIFsnYW1vdW50X2V1cicgPT4gMTIuNTAsICdsYWJlbCcgPT4gJzA2LzAyLzIwMjYgMTI6MzQ6NTYg4oCiIFRYIDAwMDEyMyddLAogKiAgICAgLi4uCiAqICAgXSwKICogXQogKgogKiBGaWx0cmUgOgogKiAtIFRvdWpvdXJzOiB2YWRzX3Jlc3VsdCA9ICcwMCcKICogLSBUb3Vqb3VyczogdmFkc19vcmRlcl9pbmZvID0gJG9yZGVySW5mbyAoYW50aS1jb2xsaXNpb24gZW50cmUgcG9pbnRzIGRlIHZlbnRlKQogKgogKiAkb3JkZXJJbmZvIHBldXQgw6p0cmUgOgogKiAtIHNvaXQgZGlyZWN0ZW1lbnQgbGEgdmFsZXVyIGF0dGVuZHVlIGVuIGJkZCAoTEFOQ09OIC8gUEVMSVNTQU5ORSksCiAqIC0gc29pdCBsZSBjb2RlIHN0b3JlICgnbGFuJyAvICdwZWwnKSBhdXF1ZWwgY2FzIG9uIG1hcHBlIGF1dG9tYXRpcXVlbWVudC4KICogU2kgb24gbmUgcGFydmllbnQgcGFzIMOgIGTDqXRlcm1pbmVyIHZhZHNfb3JkZXJfaW5mbywgb24gcmV0b3VybmUgW10gKHN0cmljdCkuCiAqLwpmdW5jdGlvbiBnZXRfc3VjY2Vzc2Z1bF9vbmxpbmVfcGF5bWVudHNfYnlfb3JkZXJfaWQoUERPICRwZG8sIGFycmF5ICRvcmRlcklkcywgJG9yZGVySW5mbyk6IGFycmF5IHsKICAkb3JkZXJJZHMgPSBhcnJheV92YWx1ZXMoYXJyYXlfdW5pcXVlKGFycmF5X21hcCgnaW50dmFsJywgJG9yZGVySWRzKSkpOwogIGlmIChlbXB0eSgkb3JkZXJJZHMpKSByZXR1cm4gW107CgogICRvaSA9IGlzX3N0cmluZygkb3JkZXJJbmZvKSA/IHRyaW0oJG9yZGVySW5mbykgOiAnJzsKICAvLyBBY2NlcHQgc3RvcmUgY29kZSAoJ2xhbid8J3BlbCcpIGFzIGlucHV0IGFuZCBtYXAgaXQgdG8gdmFkc19vcmRlcl9pbmZvLgogICRzdG9yZUNhbmRpZGF0ZSA9IHN0cnRvbG93ZXIoJG9pKTsKICBpZiAoJHN0b3JlQ2FuZGlkYXRlID09PSAnbGFuJyB8fCAkc3RvcmVDYW5kaWRhdGUgPT09ICdwZWwnKSB7CiAgICAkbWFwcGVkID0gb25saW5lUGF5bWVudHNPcmRlckluZm9Gb3JTdG9yZSgkc3RvcmVDYW5kaWRhdGUpOwogICAgJG9pID0gaXNfc3RyaW5nKCRtYXBwZWQpID8gdHJpbSgkbWFwcGVkKSA6ICcnOwogIH0KICBpZiAoJG9pID09PSAnJykgcmV0dXJuIFtdOyAvLyBzdHJpY3QgYW50aS1jb2xsaXNpb246IGRvIG5vdCBxdWVyeSB3aXRob3V0IHZhZHNfb3JkZXJfaW5mby4KCiAgJHBsYWNlaG9sZGVycyA9IGltcGxvZGUoJywnLCBhcnJheV9maWxsKDAsIGNvdW50KCRvcmRlcklkcyksICc/JykpOwogICRzcWwgPSAiCiAgICBTRUxFQ1QKICAgICAgdmFkc19vcmRlcl9pZCwKICAgICAgdmFkc19hbW91bnQsCiAgICAgIHZhZHNfdHJhbnNfZGF0ZSwKICAgICAgdmFkc190cmFuc19pZAogICAgRlJPTSBwb3NfcGF5CiAgICBXSEVSRSB2YWRzX29yZGVyX2lkIElOICgkcGxhY2Vob2xkZXJzKQogICAgICBBTkQgdmFkc19yZXN1bHQgPSAnMDAnCiAgICAgIEFORCB2YWRzX29yZGVyX2luZm8gPSA/CiAgIjsKICAkc3FsIC49ICIgT1JERVIgQlkgdmFkc19vcmRlcl9pZCBBU0MsIHZhZHNfdHJhbnNfZGF0ZSBBU0MsIHZhZHNfdHJhbnNfaWQgQVNDICI7CgogICRzdG10ID0gJHBkby0+cHJlcGFyZSgkc3FsKTsKICAkcGFyYW1zID0gJG9yZGVySWRzOwogICRwYXJhbXNbXSA9ICRvaTsKICAkc3RtdC0+ZXhlY3V0ZSgkcGFyYW1zKTsKCiAgJGJ5T3JkZXIgPSBbXTsKICB3aGlsZSAoJHJvdyA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKSkgewogICAgJG9pZCA9IGlzc2V0KCRyb3dbJ3ZhZHNfb3JkZXJfaWQnXSkgPyAoaW50KSRyb3dbJ3ZhZHNfb3JkZXJfaWQnXSA6IDA7CiAgICBpZiAoJG9pZCA8PSAwKSBjb250aW51ZTsKCiAgICAkYW1vdW50Q2VudCA9IGlzc2V0KCRyb3dbJ3ZhZHNfYW1vdW50J10pID8gKGludCkkcm93Wyd2YWRzX2Ftb3VudCddIDogMDsKICAgICRhbW91bnRFdXIgPSAkYW1vdW50Q2VudCAvIDEwMDsKCiAgICAkZGF0ZUxhYmVsID0gZm9ybWF0X3ZhZHNfdHJhbnNfZGF0ZSgkcm93Wyd2YWRzX3RyYW5zX2RhdGUnXSA/PyBudWxsKTsKICAgICR0eCA9IGlzc2V0KCRyb3dbJ3ZhZHNfdHJhbnNfaWQnXSkgJiYgJHJvd1sndmFkc190cmFuc19pZCddICE9PSAnJyA/IChzdHJpbmcpJHJvd1sndmFkc190cmFuc19pZCddIDogbnVsbDsKCiAgICAkbGFiZWxQYXJ0cyA9IFtdOwogICAgaWYgKCFlbXB0eSgkZGF0ZUxhYmVsKSkgJGxhYmVsUGFydHNbXSA9ICRkYXRlTGFiZWw7CiAgICBpZiAoIWVtcHR5KCR0eCkpICRsYWJlbFBhcnRzW10gPSAnVFggJyAuICR0eDsKICAgICRsYWJlbCA9ICFlbXB0eSgkbGFiZWxQYXJ0cykgPyBpbXBsb2RlKCcg4oCiICcsICRsYWJlbFBhcnRzKSA6ICdQYWllbWVudCc7CgogICAgaWYgKCFpc3NldCgkYnlPcmRlclskb2lkXSkpICRieU9yZGVyWyRvaWRdID0gW107CiAgICAkYnlPcmRlclskb2lkXVtdID0gWwogICAgICAnYW1vdW50X2V1cicgPT4gJGFtb3VudEV1ciwKICAgICAgJ2xhYmVsJyA9PiAkbGFiZWwsCiAgICBdOwogIH0KCiAgcmV0dXJuICRieU9yZGVyOwp9CgovKioKICogUmV0b3VybmUgdW4gdGFibGVhdSBpbmRleMOpIHBhciBvcmRlcklkIGF2ZWMgbGUgdG90YWwgZGVzIHBhaWVtZW50cyByw6l1c3NpcyBlbiBjZW50aW1lcyA6CiAqIFsKICogICAxMjMgPT4gMjUwMCwKICogICAxMjQgPT4gMTIwMCwKICogXQogKgogKiBNw6ptZSByw6hnbGUgc3RyaWN0ZSBxdWUgZ2V0X3N1Y2Nlc3NmdWxfb25saW5lX3BheW1lbnRzX2J5X29yZGVyX2lkKCk6CiAqIC0gdmFkc19yZXN1bHQgPSAnMDAnCiAqIC0gdmFkc19vcmRlcl9pbmZvID0gbWFwcGluZyBzdHJpY3QgZHUgc3RvcmUgLyBvcmRlckluZm8KICovCmZ1bmN0aW9uIGdldF9zdWNjZXNzZnVsX29ubGluZV9wYXltZW50X3RvdGFsc19ieV9vcmRlcl9pZChQRE8gJHBkbywgYXJyYXkgJG9yZGVySWRzLCAkb3JkZXJJbmZvKTogYXJyYXkgewogICRvcmRlcklkcyA9IGFycmF5X3ZhbHVlcyhhcnJheV91bmlxdWUoYXJyYXlfbWFwKCdpbnR2YWwnLCAkb3JkZXJJZHMpKSk7CiAgaWYgKGVtcHR5KCRvcmRlcklkcykpIHJldHVybiBbXTsKCiAgJG9pID0gaXNfc3RyaW5nKCRvcmRlckluZm8pID8gdHJpbSgkb3JkZXJJbmZvKSA6ICcnOwogICRzdG9yZUNhbmRpZGF0ZSA9IHN0cnRvbG93ZXIoJG9pKTsKICBpZiAoJHN0b3JlQ2FuZGlkYXRlID09PSAnbGFuJyB8fCAkc3RvcmVDYW5kaWRhdGUgPT09ICdwZWwnKSB7CiAgICAkbWFwcGVkID0gb25saW5lUGF5bWVudHNPcmRlckluZm9Gb3JTdG9yZSgkc3RvcmVDYW5kaWRhdGUpOwogICAgJG9pID0gaXNfc3RyaW5nKCRtYXBwZWQpID8gdHJpbSgkbWFwcGVkKSA6ICcnOwogIH0KICBpZiAoJG9pID09PSAnJykgcmV0dXJuIFtdOwoKICAkcGxhY2Vob2xkZXJzID0gaW1wbG9kZSgnLCcsIGFycmF5X2ZpbGwoMCwgY291bnQoJG9yZGVySWRzKSwgJz8nKSk7CiAgJHNxbCA9ICIKICAgIFNFTEVDVAogICAgICB2YWRzX29yZGVyX2lkLAogICAgICBDT0FMRVNDRShTVU0odmFkc19hbW91bnQpLCAwKSBBUyB0b3RhbF9hbW91bnRfY2VudAogICAgRlJPTSBwb3NfcGF5CiAgICBXSEVSRSB2YWRzX29yZGVyX2lkIElOICgkcGxhY2Vob2xkZXJzKQogICAgICBBTkQgdmFkc19yZXN1bHQgPSAnMDAnCiAgICAgIEFORCB2YWRzX29yZGVyX2luZm8gPSA/CiAgICBHUk9VUCBCWSB2YWRzX29yZGVyX2lkCiAgIjsKCiAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCRzcWwpOwogICRwYXJhbXMgPSAkb3JkZXJJZHM7CiAgJHBhcmFtc1tdID0gJG9pOwogICRzdG10LT5leGVjdXRlKCRwYXJhbXMpOwoKICAkdG90YWxzID0gW107CiAgd2hpbGUgKCRyb3cgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQykpIHsKICAgICRvaWQgPSBpc3NldCgkcm93Wyd2YWRzX29yZGVyX2lkJ10pID8gKGludCkkcm93Wyd2YWRzX29yZGVyX2lkJ10gOiAwOwogICAgaWYgKCRvaWQgPD0gMCkgY29udGludWU7CiAgICAkdG90YWxzWyRvaWRdID0gaXNzZXQoJHJvd1sndG90YWxfYW1vdW50X2NlbnQnXSkgPyAoaW50KSRyb3dbJ3RvdGFsX2Ftb3VudF9jZW50J10gOiAwOwogIH0KCiAgcmV0dXJuICR0b3RhbHM7Cn0KCi8qKgogKiBoYXNfc3VjY2Vzc2Z1bF9vbmxpbmVfcGF5bWVudF9mb3Jfb3JkZXIoUERPICRwZG8sIHN0cmluZyAkc3RvcmUsIGludCAkb3JkZXJJZCkgLT4gYm9vbAogKiAtIFN0cmljdCBidXNpbmVzcyBydWxlIGZvciAiZGVwb3NpdCBwYWlkPyI6CiAqICAgLSBwb3NfcGF5LnZhZHNfcmVzdWx0ID0gJzAwJwogKiAgIC0gcG9zX3BheS52YWRzX29yZGVyX2lkID0gb3JkZXJJZAogKiAgIC0gcG9zX3BheS52YWRzX29yZGVyX2luZm8gPSBzdG9yZS1tYXBwZWQgdmFsdWUgKExBTkNPTiAvIFBFTElTU0FOTkUpCiAqCiAqIE5vdGU6CiAqIC0gSWYgbWFwcGluZyBpcyBtaXNzaW5nLCB3ZSBSRVRVUk4gZmFsc2UgKHRyZWF0IGFzIHVucGFpZCkgYW5kIGNhbGxlciBzaG91bGQgbG9nLgogKi8KZnVuY3Rpb24gaGFzX3N1Y2Nlc3NmdWxfb25saW5lX3BheW1lbnRfZm9yX29yZGVyKFBETyAkcGRvLCBzdHJpbmcgJHN0b3JlLCBpbnQgJG9yZGVySWQpOiBib29sIHsKICAkb2lkID0gKGludCkkb3JkZXJJZDsKICBpZiAoJG9pZCA8PSAwKSByZXR1cm4gZmFsc2U7CgogICRvcmRlckluZm8gPSBvbmxpbmVQYXltZW50c09yZGVySW5mb0ZvclN0b3JlKCRzdG9yZSk7CiAgJG9pID0gaXNfc3RyaW5nKCRvcmRlckluZm8pID8gdHJpbSgkb3JkZXJJbmZvKSA6ICcnOwogIGlmICgkb2kgPT09ICcnKSB7CiAgICAvLyBTdHJpY3Q6IG1hcHBpbmcgbWlzc2luZyA9PiBjYW5ub3QgYXNzZXJ0IHBheW1lbnQgYmVsb25ncyB0byB0aGlzIHN0b3JlLgogICAgcmV0dXJuIGZhbHNlOwogIH0KCiAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCIKICAgIFNFTEVDVCAxCiAgICBGUk9NIHBvc19wYXkKICAgIFdIRVJFIHZhZHNfb3JkZXJfaWQgPSA6b2lkCiAgICAgIEFORCB2YWRzX3Jlc3VsdCA9ICcwMCcKICAgICAgQU5EIHZhZHNfb3JkZXJfaW5mbyA9IDpvaQogICAgTElNSVQgMQogICIpOwogICRzdG10LT5iaW5kVmFsdWUoJzpvaWQnLCAkb2lkLCBQRE86OlBBUkFNX0lOVCk7CiAgJHN0bXQtPmJpbmRWYWx1ZSgnOm9pJywgJG9pLCBQRE86OlBBUkFNX1NUUik7CiAgJHN0bXQtPmV4ZWN1dGUoKTsKICAkcm93ID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpOwogIHJldHVybiBpc19hcnJheSgkcm93KTsKfQo="
            },
            "after": {
                "exists": true,
                "kind": "file",
                "size": 11995,
                "sha1": "c884680d2f495d1259c53805135eeeaf1563cd9c",
                "content_b64": "PD9waHAKZGVjbGFyZShzdHJpY3RfdHlwZXM9MSk7CgovKiBkb2MtcHJvamVjdCB8IGNhaXNzZS1hcXAvcHVibGljL2FwaS9fbGliL29ubGluZVBheW1lbnRzLnBocCB8IEZvdXJuaXQgbOKAmWFjY8OocyBjZW50cmFsaXPDqSBhdXggcGFpZW1lbnRzIGVuIGxpZ25lIHZhbGlkw6lzLCBsZXVycyBsaWJlbGzDqXMsIGxldXJzIG1vbnRhbnRzIGFncsOpZ8OpcyBwYXIgY29tbWFuZGUvcG9pbnQgZGUgdmVudGUgZXQgdW5lIGNvcnJlc3BvbmRhbmNlIHJvYnVzdGUgbXVsdGktaWRlbnRpZmlhbnRzIHZhZHNfb3JkZXJfaWQvdmFkc19vcmRlcl9pbmZvL3ZhZHNfb3JkZXJfaW5mbzIgYWZpbiBk4oCZYWxpbWVudGVyIGxhIHZhbGlkYXRpb24gZGUgcsOoZ2xlbWVudCwgbGUgbGl2cmV1ciBldCBsZSByYXR0cmFwYWdlIGTigJlpbXByZXNzaW9uIGF1dG9tYXRpcXVlIGRlcyB0aWNrZXRzIGNsaWVudHMuIHwgRXhwb3NlOiBvbmxpbmVQYXltZW50c09yZGVySW5mb0ZvclN0b3JlLCBmb3JtYXRfdmFkc190cmFuc19kYXRlLCBnZXRfc3VjY2Vzc2Z1bF9vbmxpbmVfcGF5bWVudHNfYnlfb3JkZXJfaWQsIGdldF9zdWNjZXNzZnVsX29ubGluZV9wYXltZW50X3RvdGFsc19ieV9vcmRlcl9pZCwgZ2V0X3N1Y2Nlc3NmdWxfb25saW5lX3BheW1lbnRfdG90YWxfY2VudGltZXNfZm9yX29yZGVyLCBoYXNfc3VjY2Vzc2Z1bF9vbmxpbmVfcGF5bWVudF9mb3Jfb3JkZXIgfCBEw6lwZW5kIGRlOiBQRE8sIGNvbmZpZy5waHAsIHBvc19wYXkgfCBJbXBhY3RlOiBsZWN0dXJlIGRlcyBwYWllbWVudHMsIGFmZmljaGFnZSBkZXMgZW5jYWlzc2VtZW50cywgbG9naXF1ZSBkZSB2YWxpZGF0aW9uIGRlIHLDqGdsZW1lbnQsIGTDqXRlY3Rpb24gZGVzIGNvbW1hbmRlcyBpbnTDqWdyYWxlbWVudCBwYXnDqWVzIHwgVGFibGVzOiBwb3NfcGF5KHZhZHNfb3JkZXJfaWQsIHZhZHNfYW1vdW50LCB2YWRzX3RyYW5zX2RhdGUsIHZhZHNfdHJhbnNfaWQsIHZhZHNfcmVzdWx0LCB2YWRzX29yZGVyX2luZm8sIHZhZHNfb3JkZXJfaW5mbzIpICovCi8qKgogKiBwdWJsaWMvYXBpL19saWIvb25saW5lUGF5bWVudHMucGhwCiAqCiAqIFLDqWN1cMOpcmF0aW9uIGRlcyBwYWllbWVudHMgZW4gbGlnbmUgKHBvc19wYXkpIGdyb3Vww6llLgogKiAtIEZpbHRyZSAic3VjY8OocyIgOiB2YWRzX3Jlc3VsdCA9ICcwMCcKICogLSBGaWx0cmUgcHJvamV0L1BEViA6IHZhZHNfb3JkZXJfaW5mbyA9ICRvcmRlckluZm8gKGTDqXBlbmQgZHUgc3RvcmUgbGFufHBlbCA6IExBTkNPTiAvIFBFTElTU0FOTkUgZW4gYmRkKQogKi8KCi8qKgogKiBNYXBwaW5nIHN0b3JlIC0+IHZhZHNfb3JkZXJfaW5mby4KICogUmVjb21tYW5kw6k6IGTDqWZpbmlyIE9OTElORV9QQVlNRU5UU19PUkRFUl9JTkZPX01BUCBkYW5zIGNvbmZpZy5waHAsIGV4OgogKiAgIGRlZmluZSgnT05MSU5FX1BBWU1FTlRTX09SREVSX0lORk9fTUFQJywgWydsYW4nID0+ICdMQU5DT04nLCAncGVsJyA9PiAnUEVMSVNTQU5ORSddKTsKICoKICogRmFsbGJhY2tzIHN1cHBvcnTDqXMgKHNpIGJlc29pbikgOgogKiAtIGRlZmluZSgnTEFOX09SREVSX0lORk8nLCAnLi4uJyksIGRlZmluZSgnUEVMX09SREVSX0lORk8nLCAnLi4uJykKICogLSBkZWZpbmUoJ09SREVSX0lORk9fTEFOJywgJy4uLicpLCBkZWZpbmUoJ09SREVSX0lORk9fUEVMJywgJy4uLicpCiAqLwpmdW5jdGlvbiBvbmxpbmVQYXltZW50c09yZGVySW5mb0ZvclN0b3JlKHN0cmluZyAkc3RvcmUpOiA/c3RyaW5nIHsKICAkcyA9IHN0cnRvbG93ZXIodHJpbSgkc3RvcmUpKTsKICBpZiAoJHMgIT09ICdsYW4nICYmICRzICE9PSAncGVsJykgcmV0dXJuIG51bGw7CgogIGlmIChkZWZpbmVkKCdPTkxJTkVfUEFZTUVOVFNfT1JERVJfSU5GT19NQVAnKSkgewogICAgJG0gPSBjb25zdGFudCgnT05MSU5FX1BBWU1FTlRTX09SREVSX0lORk9fTUFQJyk7CiAgICBpZiAoaXNfYXJyYXkoJG0pICYmIGlzc2V0KCRtWyRzXSkgJiYgaXNfc3RyaW5nKCRtWyRzXSkgJiYgJG1bJHNdICE9PSAnJykgewogICAgICByZXR1cm4gKHN0cmluZykkbVskc107CiAgICB9CiAgfQoKICBpZiAoJHMgPT09ICdsYW4nKSB7CiAgICBpZiAoZGVmaW5lZCgnTEFOX09SREVSX0lORk8nKSAmJiBpc19zdHJpbmcoY29uc3RhbnQoJ0xBTl9PUkRFUl9JTkZPJykpICYmIGNvbnN0YW50KCdMQU5fT1JERVJfSU5GTycpICE9PSAnJykgcmV0dXJuIChzdHJpbmcpY29uc3RhbnQoJ0xBTl9PUkRFUl9JTkZPJyk7CiAgICBpZiAoZGVmaW5lZCgnT1JERVJfSU5GT19MQU4nKSAmJiBpc19zdHJpbmcoY29uc3RhbnQoJ09SREVSX0lORk9fTEFOJykpICYmIGNvbnN0YW50KCdPUkRFUl9JTkZPX0xBTicpICE9PSAnJykgcmV0dXJuIChzdHJpbmcpY29uc3RhbnQoJ09SREVSX0lORk9fTEFOJyk7CiAgfQogIGlmICgkcyA9PT0gJ3BlbCcpIHsKICAgIGlmIChkZWZpbmVkKCdQRUxfT1JERVJfSU5GTycpICYmIGlzX3N0cmluZyhjb25zdGFudCgnUEVMX09SREVSX0lORk8nKSkgJiYgY29uc3RhbnQoJ1BFTF9PUkRFUl9JTkZPJykgIT09ICcnKSByZXR1cm4gKHN0cmluZyljb25zdGFudCgnUEVMX09SREVSX0lORk8nKTsKICAgIGlmIChkZWZpbmVkKCdPUkRFUl9JTkZPX1BFTCcpICYmIGlzX3N0cmluZyhjb25zdGFudCgnT1JERVJfSU5GT19QRUwnKSkgJiYgY29uc3RhbnQoJ09SREVSX0lORk9fUEVMJykgIT09ICcnKSByZXR1cm4gKHN0cmluZyljb25zdGFudCgnT1JERVJfSU5GT19QRUwnKTsKICB9CgogIC8vIERlZmF1bHRzIERCIChzdHJpY3QgYnVzaW5lc3MgcnVsZSk6IExBTkNPTiAvIFBFTElTU0FOTkUKICBpZiAoJHMgPT09ICdsYW4nKSByZXR1cm4gJ0xBTkNPTic7CiAgaWYgKCRzID09PSAncGVsJykgcmV0dXJuICdQRUxJU1NBTk5FJzsKICByZXR1cm4gbnVsbDsKfQoKLyoqCiAqIFRlbnRlIGRlIGZvcm1hdGVyIHZhZHNfdHJhbnNfZGF0ZSAoc291dmVudCBhdSBmb3JtYXQgWVlZWU1NRERISE1NU1MpLgogKiBSZXRvdXJuZSB1bmUgY2hhw65uZSBsaXNpYmxlLCBzaW5vbiBsYSB2YWxldXIgYnJ1dGUuCiAqLwpmdW5jdGlvbiBmb3JtYXRfdmFkc190cmFuc19kYXRlKCRyYXcpOiA/c3RyaW5nIHsKICBpZiAoJHJhdyA9PT0gbnVsbCkgcmV0dXJuIG51bGw7CiAgJHMgPSAoc3RyaW5nKSRyYXc7CgogIGlmIChwcmVnX21hdGNoKCcvXlxkezE0fSQvJywgJHMpKSB7CiAgICAkZHQgPSBEYXRlVGltZTo6Y3JlYXRlRnJvbUZvcm1hdCgnWW1kSGlzJywgJHMsIG5ldyBEYXRlVGltZVpvbmUoJ0V1cm9wZS9QYXJpcycpKTsKICAgIGlmICgkZHQgaW5zdGFuY2VvZiBEYXRlVGltZSkgcmV0dXJuICRkdC0+Zm9ybWF0KCdkL20vWSBIOmk6cycpOwogIH0KICBpZiAocHJlZ19tYXRjaCgnL15cZHs4fSQvJywgJHMpKSB7CiAgICAkZHQgPSBEYXRlVGltZTo6Y3JlYXRlRnJvbUZvcm1hdCgnWW1kJywgJHMsIG5ldyBEYXRlVGltZVpvbmUoJ0V1cm9wZS9QYXJpcycpKTsKICAgIGlmICgkZHQgaW5zdGFuY2VvZiBEYXRlVGltZSkgcmV0dXJuICRkdC0+Zm9ybWF0KCdkL20vWScpOwogIH0KICByZXR1cm4gJHM7Cn0KCi8qKgogKiBOb3JtYWxpc2UgbGVzIHZhbGV1cnMgcG91dmFudCBpZGVudGlmaWVyIHVuZSBjb21tYW5kZSBkYW5zIHBvc19wYXkuCiAqCiAqIEV4ZW1wbGVzIGRlIHZhbGV1cnMgdXRpbGVzIDoKICogLSBpZCBpbnRlcm5lIGNvbW1hbmRlCiAqIC0gaWRfZGF0ZSBzaSBjZXJ0YWlucyByZXRvdXJzIGhpc3RvcmlxdWVzIGzigJl1dGlsaXNlbnQKICogLSBwYXlMaW5rIHN0b2Nrw6kgZGFucyB2YWRzX29yZGVyX2luZm8yIHBhciBsZSBmbHV4IFN5c3RlbXBheQogKi8KZnVuY3Rpb24gb25saW5lUGF5bWVudHNOb3JtYWxpemVNYXRjaFZhbHVlcyhhcnJheSAkdmFsdWVzKTogYXJyYXkgewogICRvdXQgPSBbXTsKICBmb3JlYWNoICgkdmFsdWVzIGFzICR2YWx1ZSkgewogICAgaWYgKCR2YWx1ZSA9PT0gbnVsbCkgY29udGludWU7CiAgICAkcyA9IHRyaW0oKHN0cmluZykkdmFsdWUpOwogICAgaWYgKCRzID09PSAnJykgY29udGludWU7CiAgICAkb3V0WyRzXSA9IHRydWU7CiAgfQogIHJldHVybiBhcnJheV9rZXlzKCRvdXQpOwp9CgovKioKICogUmV0b3VybmUgbGUgdG90YWwgcGF5w6kgcsOpdXNzaSBwb3VyIHVuZSBzZXVsZSBjb21tYW5kZSwgZW4gY2VudGltZXMuCiAqCiAqIExhIGNvcnJlc3BvbmRhbmNlIGVzdCB2b2xvbnRhaXJlbWVudCBwbHVzIHJvYnVzdGUgcXVlIGxlIGNhcyBoaXN0b3JpcXVlCiAqIHZhZHNfb3JkZXJfaWQgKyB2YWRzX29yZGVyX2luZm8gOgogKiAtIGNhcyBzdHJpY3QgY291cmFudCA6IHZhZHNfb3JkZXJfaWQgPSBvcmRlcklkIEVUIHZhZHNfb3JkZXJfaW5mbyA9IHN0b3JlCiAqIC0gY2FzIHJldG91ci9JUE4gb8O5IGxlIHN0b3JlIGVzdCBwb3J0w6kgZGFucyB2YWRzX29yZGVyX2luZm8yCiAqIC0gY2FzIG/DuSB1biBpZGVudGlmaWFudCBjb21tYW5kZS9wYXlMaW5rIGVzdCBzdG9ja8OpIGRhbnMgdmFkc19vcmRlcl9pbmZvIG91IHZhZHNfb3JkZXJfaW5mbzIKICoKICogTGUgcGF5TGluaywgcXVhbmQgZm91cm5pIGRhbnMgJG1hdGNoVmFsdWVzLCByZXN0ZSBsZSBtZWlsbGV1ciBnYXJkZS1mb3UKICogY29udHJlIGxlcyBjb2xsaXNpb25zIGTigJlpZCBlbnRyZSBwb3NfY29tbWFuZGVzIGV0IHBvc19jb21tYW5kZXNfcGVsLgogKgogKiBAcmV0dXJuIGFycmF5e3RvdGFsX3BhaWRfY2VudGltZXM6aW50LG1hdGNoZWRfcm93czppbnR9CiAqLwpmdW5jdGlvbiBnZXRfc3VjY2Vzc2Z1bF9vbmxpbmVfcGF5bWVudF90b3RhbF9jZW50aW1lc19mb3Jfb3JkZXIoUERPICRwZG8sIGludCAkb3JkZXJJZCwgJG9yZGVySW5mbywgYXJyYXkgJG1hdGNoVmFsdWVzID0gW10pOiBhcnJheSB7CiAgaWYgKCRvcmRlcklkIDw9IDApIHsKICAgIHJldHVybiBbCiAgICAgICd0b3RhbF9wYWlkX2NlbnRpbWVzJyA9PiAwLAogICAgICAnbWF0Y2hlZF9yb3dzJyA9PiAwLAogICAgXTsKICB9CgogICRvaSA9IGlzX3N0cmluZygkb3JkZXJJbmZvKSA/IHRyaW0oJG9yZGVySW5mbykgOiAnJzsKICAkc3RvcmVDYW5kaWRhdGUgPSBzdHJ0b2xvd2VyKCRvaSk7CiAgaWYgKCRzdG9yZUNhbmRpZGF0ZSA9PT0gJ2xhbicgfHwgJHN0b3JlQ2FuZGlkYXRlID09PSAncGVsJykgewogICAgJG1hcHBlZCA9IG9ubGluZVBheW1lbnRzT3JkZXJJbmZvRm9yU3RvcmUoJHN0b3JlQ2FuZGlkYXRlKTsKICAgICRvaSA9IGlzX3N0cmluZygkbWFwcGVkKSA/IHRyaW0oJG1hcHBlZCkgOiAnJzsKICB9CgogICRpZGVudGlmaWVycyA9IG9ubGluZVBheW1lbnRzTm9ybWFsaXplTWF0Y2hWYWx1ZXMoYXJyYXlfbWVyZ2UoWyhzdHJpbmcpJG9yZGVySWRdLCAkbWF0Y2hWYWx1ZXMpKTsKICAkY29uZGl0aW9ucyA9IFtdOwogICRwYXJhbXMgPSBbCiAgICAnOm9yZGVyX2lkJyA9PiAkb3JkZXJJZCwKICBdOwoKICBpZiAoJG9pICE9PSAnJykgewogICAgJHBhcmFtc1snOm9pJ10gPSAkb2k7CiAgICAkY29uZGl0aW9uc1tdID0gJyh2YWRzX29yZGVyX2lkID0gOm9yZGVyX2lkIEFORCAodmFkc19vcmRlcl9pbmZvID0gOm9pIE9SIHZhZHNfb3JkZXJfaW5mbzIgPSA6b2kpKSc7CiAgfQoKICBpZiAoIWVtcHR5KCRpZGVudGlmaWVycykpIHsKICAgICRwbGFjZWhvbGRlcnMgPSBbXTsKICAgIGZvcmVhY2ggKCRpZGVudGlmaWVycyBhcyAkaWR4ID0+ICRpZGVudGlmaWVyKSB7CiAgICAgICRwbGFjZWhvbGRlciA9ICc6bWF0Y2hfJyAuICRpZHg7CiAgICAgICRwbGFjZWhvbGRlcnNbXSA9ICRwbGFjZWhvbGRlcjsKICAgICAgJHBhcmFtc1skcGxhY2Vob2xkZXJdID0gJGlkZW50aWZpZXI7CiAgICB9CiAgICAkaW5DbGF1c2UgPSBpbXBsb2RlKCcsJywgJHBsYWNlaG9sZGVycyk7CiAgICAkY29uZGl0aW9uc1tdID0gIih2YWRzX29yZGVyX2luZm8gSU4gKHskaW5DbGF1c2V9KSBPUiB2YWRzX29yZGVyX2luZm8yIElOICh7JGluQ2xhdXNlfSkpIjsKICB9CgogIGlmIChlbXB0eSgkY29uZGl0aW9ucykpIHsKICAgIHJldHVybiBbCiAgICAgICd0b3RhbF9wYWlkX2NlbnRpbWVzJyA9PiAwLAogICAgICAnbWF0Y2hlZF9yb3dzJyA9PiAwLAogICAgXTsKICB9CgogICRzcWwgPSAiCiAgICBTRUxFQ1QKICAgICAgQ09BTEVTQ0UoU1VNKHZhZHNfYW1vdW50KSwgMCkgQVMgdG90YWxfcGFpZF9jZW50aW1lcywKICAgICAgQ09VTlQoKikgQVMgbWF0Y2hlZF9yb3dzCiAgICBGUk9NIHBvc19wYXkKICAgIFdIRVJFIHZhZHNfcmVzdWx0ID0gJzAwJwogICAgICBBTkQgKCIgLiBpbXBsb2RlKCcgT1IgJywgJGNvbmRpdGlvbnMpIC4gIikKICAiOwoKICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoJHNxbCk7CiAgZm9yZWFjaCAoJHBhcmFtcyBhcyAkbmFtZSA9PiAkdmFsdWUpIHsKICAgIGlmICgkbmFtZSA9PT0gJzpvcmRlcl9pZCcpIHsKICAgICAgJHN0bXQtPmJpbmRWYWx1ZSgkbmFtZSwgKGludCkkdmFsdWUsIFBETzo6UEFSQU1fSU5UKTsKICAgIH0gZWxzZSB7CiAgICAgICRzdG10LT5iaW5kVmFsdWUoJG5hbWUsIChzdHJpbmcpJHZhbHVlLCBQRE86OlBBUkFNX1NUUik7CiAgICB9CiAgfQogICRzdG10LT5leGVjdXRlKCk7CiAgJHJvdyA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKTsKCiAgcmV0dXJuIFsKICAgICd0b3RhbF9wYWlkX2NlbnRpbWVzJyA9PiBpc3NldCgkcm93Wyd0b3RhbF9wYWlkX2NlbnRpbWVzJ10pID8gKGludCkkcm93Wyd0b3RhbF9wYWlkX2NlbnRpbWVzJ10gOiAwLAogICAgJ21hdGNoZWRfcm93cycgPT4gaXNzZXQoJHJvd1snbWF0Y2hlZF9yb3dzJ10pID8gKGludCkkcm93WydtYXRjaGVkX3Jvd3MnXSA6IDAsCiAgXTsKfQoKLyoqCiAqIFJldG91cm5lIHVuIHRhYmxlYXUgaW5kZXjDqSBwYXIgb3JkZXJJZCA6CiAqIFsKICogICAxMjMgPT4gWwogKiAgICAgWydhbW91bnRfZXVyJyA9PiAxMi41MCwgJ2xhYmVsJyA9PiAnMDYvMDIvMjAyNiAxMjozNDo1NiDigKIgVFggMDAwMTIzJ10sCiAqICAgICAuLi4KICogICBdLAogKiBdCiAqCiAqIEZpbHRyZSA6CiAqIC0gVG91am91cnM6IHZhZHNfcmVzdWx0ID0gJzAwJwogKiAtIFRvdWpvdXJzOiB2YWRzX29yZGVyX2luZm8gPSAkb3JkZXJJbmZvIChhbnRpLWNvbGxpc2lvbiBlbnRyZSBwb2ludHMgZGUgdmVudGUpCiAqCiAqICRvcmRlckluZm8gcGV1dCDDqnRyZSA6CiAqIC0gc29pdCBkaXJlY3RlbWVudCBsYSB2YWxldXIgYXR0ZW5kdWUgZW4gYmRkIChMQU5DT04gLyBQRUxJU1NBTk5FKSwKICogLSBzb2l0IGxlIGNvZGUgc3RvcmUgKCdsYW4nIC8gJ3BlbCcpIGF1cXVlbCBjYXMgb24gbWFwcGUgYXV0b21hdGlxdWVtZW50LgogKiBTaSBvbiBuZSBwYXJ2aWVudCBwYXMgw6AgZMOpdGVybWluZXIgdmFkc19vcmRlcl9pbmZvLCBvbiByZXRvdXJuZSBbXSAoc3RyaWN0KS4KICovCmZ1bmN0aW9uIGdldF9zdWNjZXNzZnVsX29ubGluZV9wYXltZW50c19ieV9vcmRlcl9pZChQRE8gJHBkbywgYXJyYXkgJG9yZGVySWRzLCAkb3JkZXJJbmZvKTogYXJyYXkgewogICRvcmRlcklkcyA9IGFycmF5X3ZhbHVlcyhhcnJheV91bmlxdWUoYXJyYXlfbWFwKCdpbnR2YWwnLCAkb3JkZXJJZHMpKSk7CiAgaWYgKGVtcHR5KCRvcmRlcklkcykpIHJldHVybiBbXTsKCiAgJG9pID0gaXNfc3RyaW5nKCRvcmRlckluZm8pID8gdHJpbSgkb3JkZXJJbmZvKSA6ICcnOwogIC8vIEFjY2VwdCBzdG9yZSBjb2RlICgnbGFuJ3wncGVsJykgYXMgaW5wdXQgYW5kIG1hcCBpdCB0byB2YWRzX29yZGVyX2luZm8uCiAgJHN0b3JlQ2FuZGlkYXRlID0gc3RydG9sb3dlcigkb2kpOwogIGlmICgkc3RvcmVDYW5kaWRhdGUgPT09ICdsYW4nIHx8ICRzdG9yZUNhbmRpZGF0ZSA9PT0gJ3BlbCcpIHsKICAgICRtYXBwZWQgPSBvbmxpbmVQYXltZW50c09yZGVySW5mb0ZvclN0b3JlKCRzdG9yZUNhbmRpZGF0ZSk7CiAgICAkb2kgPSBpc19zdHJpbmcoJG1hcHBlZCkgPyB0cmltKCRtYXBwZWQpIDogJyc7CiAgfQogIGlmICgkb2kgPT09ICcnKSByZXR1cm4gW107IC8vIHN0cmljdCBhbnRpLWNvbGxpc2lvbjogZG8gbm90IHF1ZXJ5IHdpdGhvdXQgdmFkc19vcmRlcl9pbmZvLgoKICAkcGxhY2Vob2xkZXJzID0gaW1wbG9kZSgnLCcsIGFycmF5X2ZpbGwoMCwgY291bnQoJG9yZGVySWRzKSwgJz8nKSk7CiAgJHNxbCA9ICIKICAgIFNFTEVDVAogICAgICB2YWRzX29yZGVyX2lkLAogICAgICB2YWRzX2Ftb3VudCwKICAgICAgdmFkc190cmFuc19kYXRlLAogICAgICB2YWRzX3RyYW5zX2lkCiAgICBGUk9NIHBvc19wYXkKICAgIFdIRVJFIHZhZHNfb3JkZXJfaWQgSU4gKCRwbGFjZWhvbGRlcnMpCiAgICAgIEFORCB2YWRzX3Jlc3VsdCA9ICcwMCcKICAgICAgQU5EIHZhZHNfb3JkZXJfaW5mbyA9ID8KICAiOwogICRzcWwgLj0gIiBPUkRFUiBCWSB2YWRzX29yZGVyX2lkIEFTQywgdmFkc190cmFuc19kYXRlIEFTQywgdmFkc190cmFuc19pZCBBU0MgIjsKCiAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCRzcWwpOwogICRwYXJhbXMgPSAkb3JkZXJJZHM7CiAgJHBhcmFtc1tdID0gJG9pOwogICRzdG10LT5leGVjdXRlKCRwYXJhbXMpOwoKICAkYnlPcmRlciA9IFtdOwogIHdoaWxlICgkcm93ID0gJHN0bXQtPmZldGNoKFBETzo6RkVUQ0hfQVNTT0MpKSB7CiAgICAkb2lkID0gaXNzZXQoJHJvd1sndmFkc19vcmRlcl9pZCddKSA/IChpbnQpJHJvd1sndmFkc19vcmRlcl9pZCddIDogMDsKICAgIGlmICgkb2lkIDw9IDApIGNvbnRpbnVlOwoKICAgICRhbW91bnRDZW50ID0gaXNzZXQoJHJvd1sndmFkc19hbW91bnQnXSkgPyAoaW50KSRyb3dbJ3ZhZHNfYW1vdW50J10gOiAwOwogICAgJGFtb3VudEV1ciA9ICRhbW91bnRDZW50IC8gMTAwOwoKICAgICRkYXRlTGFiZWwgPSBmb3JtYXRfdmFkc190cmFuc19kYXRlKCRyb3dbJ3ZhZHNfdHJhbnNfZGF0ZSddID8/IG51bGwpOwogICAgJHR4ID0gaXNzZXQoJHJvd1sndmFkc190cmFuc19pZCddKSAmJiAkcm93Wyd2YWRzX3RyYW5zX2lkJ10gIT09ICcnID8gKHN0cmluZykkcm93Wyd2YWRzX3RyYW5zX2lkJ10gOiBudWxsOwoKICAgICRsYWJlbFBhcnRzID0gW107CiAgICBpZiAoIWVtcHR5KCRkYXRlTGFiZWwpKSAkbGFiZWxQYXJ0c1tdID0gJGRhdGVMYWJlbDsKICAgIGlmICghZW1wdHkoJHR4KSkgJGxhYmVsUGFydHNbXSA9ICdUWCAnIC4gJHR4OwogICAgJGxhYmVsID0gIWVtcHR5KCRsYWJlbFBhcnRzKSA/IGltcGxvZGUoJyDigKIgJywgJGxhYmVsUGFydHMpIDogJ1BhaWVtZW50JzsKCiAgICBpZiAoIWlzc2V0KCRieU9yZGVyWyRvaWRdKSkgJGJ5T3JkZXJbJG9pZF0gPSBbXTsKICAgICRieU9yZGVyWyRvaWRdW10gPSBbCiAgICAgICdhbW91bnRfZXVyJyA9PiAkYW1vdW50RXVyLAogICAgICAnbGFiZWwnID0+ICRsYWJlbCwKICAgIF07CiAgfQoKICByZXR1cm4gJGJ5T3JkZXI7Cn0KCi8qKgogKiBSZXRvdXJuZSB1biB0YWJsZWF1IGluZGV4w6kgcGFyIG9yZGVySWQgYXZlYyBsZSB0b3RhbCBkZXMgcGFpZW1lbnRzIHLDqXVzc2lzIGVuIGNlbnRpbWVzIDoKICogWwogKiAgIDEyMyA9PiAyNTAwLAogKiAgIDEyNCA9PiAxMjAwLAogKiBdCiAqCiAqIE3Dqm1lIHLDqGdsZSBzdHJpY3RlIHF1ZSBnZXRfc3VjY2Vzc2Z1bF9vbmxpbmVfcGF5bWVudHNfYnlfb3JkZXJfaWQoKToKICogLSB2YWRzX3Jlc3VsdCA9ICcwMCcKICogLSB2YWRzX29yZGVyX2luZm8gPSBtYXBwaW5nIHN0cmljdCBkdSBzdG9yZSAvIG9yZGVySW5mbwogKi8KZnVuY3Rpb24gZ2V0X3N1Y2Nlc3NmdWxfb25saW5lX3BheW1lbnRfdG90YWxzX2J5X29yZGVyX2lkKFBETyAkcGRvLCBhcnJheSAkb3JkZXJJZHMsICRvcmRlckluZm8pOiBhcnJheSB7CiAgJG9yZGVySWRzID0gYXJyYXlfdmFsdWVzKGFycmF5X3VuaXF1ZShhcnJheV9tYXAoJ2ludHZhbCcsICRvcmRlcklkcykpKTsKICBpZiAoZW1wdHkoJG9yZGVySWRzKSkgcmV0dXJuIFtdOwoKICAkb2kgPSBpc19zdHJpbmcoJG9yZGVySW5mbykgPyB0cmltKCRvcmRlckluZm8pIDogJyc7CiAgJHN0b3JlQ2FuZGlkYXRlID0gc3RydG9sb3dlcigkb2kpOwogIGlmICgkc3RvcmVDYW5kaWRhdGUgPT09ICdsYW4nIHx8ICRzdG9yZUNhbmRpZGF0ZSA9PT0gJ3BlbCcpIHsKICAgICRtYXBwZWQgPSBvbmxpbmVQYXltZW50c09yZGVySW5mb0ZvclN0b3JlKCRzdG9yZUNhbmRpZGF0ZSk7CiAgICAkb2kgPSBpc19zdHJpbmcoJG1hcHBlZCkgPyB0cmltKCRtYXBwZWQpIDogJyc7CiAgfQogIGlmICgkb2kgPT09ICcnKSByZXR1cm4gW107CgogICRwbGFjZWhvbGRlcnMgPSBpbXBsb2RlKCcsJywgYXJyYXlfZmlsbCgwLCBjb3VudCgkb3JkZXJJZHMpLCAnPycpKTsKICAkc3FsID0gIgogICAgU0VMRUNUCiAgICAgIHZhZHNfb3JkZXJfaWQsCiAgICAgIENPQUxFU0NFKFNVTSh2YWRzX2Ftb3VudCksIDApIEFTIHRvdGFsX2Ftb3VudF9jZW50CiAgICBGUk9NIHBvc19wYXkKICAgIFdIRVJFIHZhZHNfb3JkZXJfaWQgSU4gKCRwbGFjZWhvbGRlcnMpCiAgICAgIEFORCB2YWRzX3Jlc3VsdCA9ICcwMCcKICAgICAgQU5EIHZhZHNfb3JkZXJfaW5mbyA9ID8KICAgIEdST1VQIEJZIHZhZHNfb3JkZXJfaWQKICAiOwoKICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoJHNxbCk7CiAgJHBhcmFtcyA9ICRvcmRlcklkczsKICAkcGFyYW1zW10gPSAkb2k7CiAgJHN0bXQtPmV4ZWN1dGUoJHBhcmFtcyk7CgogICR0b3RhbHMgPSBbXTsKICB3aGlsZSAoJHJvdyA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKSkgewogICAgJG9pZCA9IGlzc2V0KCRyb3dbJ3ZhZHNfb3JkZXJfaWQnXSkgPyAoaW50KSRyb3dbJ3ZhZHNfb3JkZXJfaWQnXSA6IDA7CiAgICBpZiAoJG9pZCA8PSAwKSBjb250aW51ZTsKICAgICR0b3RhbHNbJG9pZF0gPSBpc3NldCgkcm93Wyd0b3RhbF9hbW91bnRfY2VudCddKSA/IChpbnQpJHJvd1sndG90YWxfYW1vdW50X2NlbnQnXSA6IDA7CiAgfQoKICByZXR1cm4gJHRvdGFsczsKfQoKLyoqCiAqIGhhc19zdWNjZXNzZnVsX29ubGluZV9wYXltZW50X2Zvcl9vcmRlcihQRE8gJHBkbywgc3RyaW5nICRzdG9yZSwgaW50ICRvcmRlcklkKSAtPiBib29sCiAqIC0gU3RyaWN0IGJ1c2luZXNzIHJ1bGUgZm9yICJkZXBvc2l0IHBhaWQ/IjoKICogICAtIHBvc19wYXkudmFkc19yZXN1bHQgPSAnMDAnCiAqICAgLSBwb3NfcGF5LnZhZHNfb3JkZXJfaWQgPSBvcmRlcklkCiAqICAgLSBwb3NfcGF5LnZhZHNfb3JkZXJfaW5mbyA9IHN0b3JlLW1hcHBlZCB2YWx1ZSAoTEFOQ09OIC8gUEVMSVNTQU5ORSkKICoKICogTm90ZToKICogLSBJZiBtYXBwaW5nIGlzIG1pc3NpbmcsIHdlIFJFVFVSTiBmYWxzZSAodHJlYXQgYXMgdW5wYWlkKSBhbmQgY2FsbGVyIHNob3VsZCBsb2cuCiAqLwpmdW5jdGlvbiBoYXNfc3VjY2Vzc2Z1bF9vbmxpbmVfcGF5bWVudF9mb3Jfb3JkZXIoUERPICRwZG8sIHN0cmluZyAkc3RvcmUsIGludCAkb3JkZXJJZCk6IGJvb2wgewogICRvaWQgPSAoaW50KSRvcmRlcklkOwogIGlmICgkb2lkIDw9IDApIHJldHVybiBmYWxzZTsKCiAgJG9yZGVySW5mbyA9IG9ubGluZVBheW1lbnRzT3JkZXJJbmZvRm9yU3RvcmUoJHN0b3JlKTsKICAkb2kgPSBpc19zdHJpbmcoJG9yZGVySW5mbykgPyB0cmltKCRvcmRlckluZm8pIDogJyc7CiAgaWYgKCRvaSA9PT0gJycpIHsKICAgIC8vIFN0cmljdDogbWFwcGluZyBtaXNzaW5nID0+IGNhbm5vdCBhc3NlcnQgcGF5bWVudCBiZWxvbmdzIHRvIHRoaXMgc3RvcmUuCiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIgogICAgU0VMRUNUIDEKICAgIEZST00gcG9zX3BheQogICAgV0hFUkUgdmFkc19vcmRlcl9pZCA9IDpvaWQKICAgICAgQU5EIHZhZHNfcmVzdWx0ID0gJzAwJwogICAgICBBTkQgdmFkc19vcmRlcl9pbmZvID0gOm9pCiAgICBMSU1JVCAxCiAgIik7CiAgJHN0bXQtPmJpbmRWYWx1ZSgnOm9pZCcsICRvaWQsIFBETzo6UEFSQU1fSU5UKTsKICAkc3RtdC0+YmluZFZhbHVlKCc6b2knLCAkb2ksIFBETzo6UEFSQU1fU1RSKTsKICAkc3RtdC0+ZXhlY3V0ZSgpOwogICRyb3cgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7CiAgcmV0dXJuIGlzX2FycmF5KCRyb3cpOwp9Cg=="
            }
        },
        {
            "path": "livreur/get_orders.php",
            "kind": "file",
            "before": {
                "exists": true,
                "kind": "file",
                "size": 8117,
                "sha1": "b07f6f9a01977b5a0dbbbc6118240a2e2fd60a13",
                "content_b64": "PD9waHAKLyogZG9jLXByb2plY3QgfCBsaXZyZXVyL2dldF9vcmRlcnMucGhwIHwgRm91cm5pdCBlbiBKU09OIGxlcyBjb21tYW5kZXMgZGUgbGl2cmFpc29uIGR1IGpvdXIgcG91ciBsZSBzdG9yZSBjb3VyYW50IHZpYSB1biBtYXBwaW5nIGRlIHRhYmxlcyBtdXR1YWxpc8OpLCBhdmVjIHLDqXNvbHV0aW9uIGTigJlhZHJlc3NlIGVmZmVjdGl2ZSAodGVtcG9yYWlyZSBwcmlvcml0YWlyZSkgcG91ciBhZmZpY2hhZ2UgZXQgbmF2aWdhdGlvbi4gfCBFeHBvc2U6IGNhbGN1bGF0ZU9yZGVyUGF5bWVudCwgYnVpbGRFZmZlY3RpdmVBZGRyZXNzRGF0YSB8IETDqXBlbmQgZGU6IGxpdnJldXIvYXV0aF9tYWdpYy5waHAsIGxpdnJldXIvY29uZmlnLnBocCwgbGl2cmV1ci9saWIvc3RvcmUucGhwLCB0YWJsZXMgUE9TIHNlbG9uIHN0b3JlLCBwb3NfcGF5LCBwb3NfdGVtcF9hZHJlc3NlcyB8IEltcGFjdGU6IHLDqXBvbnNlIEFQSSBKU09OLCBsZWN0dXJlIEJERCBtdWx0aS1zdG9yZSwgbmF2aWdhdGlvbiBsaXZyZXVyIHwgVGFibGVzOiBwb3NfY29tbWFuZGVzKiwgc3RkX2NsaWVudHMsIHBvc19waXp6YXNfY29tbWFuZGVlcyosIHBvc19waXp6YXMsIHBvc19tb2RpZnNfcGl6emFzKiwgcG9zX3BheSwgcG9zX3RlbXBfYWRyZXNzZXMgKi8KcmVxdWlyZV9vbmNlIF9fRElSX18gLiAnL2F1dGhfbWFnaWMucGhwJzsKcmVxdWlyZV9kcml2ZXJfYXV0aCgnanNvbicpOwpoZWFkZXIoJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCcpOwoKZGF0ZV9kZWZhdWx0X3RpbWV6b25lX3NldCgnRXVyb3BlL1BhcmlzJyk7CiRjdXJyZW50RGF0ZSA9IG5ldyBEYXRlVGltZSgpOwokY3VycmVudERhdGUtPnNldFRpbWUoMCwgMCk7IC8vIETDqWJ1dCBkZSBsYSBqb3VybsOpZQoKJHRpbWVzdGFtcFN0YXJ0T2ZEYXkgPSAkY3VycmVudERhdGUtPmdldFRpbWVzdGFtcCgpICogMTAwMDsKJHN0b3JlQ29uZmlnID0gbGl2cmV1cl9zdG9yZV9jdXJyZW50X2NvbmZpZygpOwokdGFibGVzID0gJHN0b3JlQ29uZmlnWyd0YWJsZXMnXTsKCi8vIEZvbmN0aW9uIHBvdXIgY2FsY3VsZXIgbGVzIGTDqXRhaWxzIGRlIHBhaWVtZW50CmZ1bmN0aW9uIGNhbGN1bGF0ZU9yZGVyUGF5bWVudChQRE8gJHBkbywgYXJyYXkgJHN0b3JlQ29uZmlnLCBpbnQgJG9yZGVySWQpOiBhcnJheSB7CiAgICAkdGFibGVzID0gJHN0b3JlQ29uZmlnWyd0YWJsZXMnXTsKICAgIC8vIFLDqWN1cMOpcmVyIGxlcyBwaXp6YXMgY29tbWFuZMOpZXMgZXQgY2FsY3VsZXIgbGUgdG90YWwgZGUgbGEgY29tbWFuZGUKICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiCiAgICAgICAgU0VMRUNUIHBwYy5pZCwgcHBjLmlkX3Bvc19waXp6YXMsIHBwYy5pc193ZWJfYWRkaXRpb24sIHBwLnByaWNlX2xhcmdlLCBwcC5wcmljZV9tZWRpdW0KICAgICAgICBGUk9NIHskdGFibGVzWydwb3NfcGl6emFzX2NvbW1hbmRlZXMnXX0gcHBjCiAgICAgICAgSk9JTiBwb3NfcGl6emFzIHBwIE9OIHBwYy5pZF9wb3NfcGl6emFzID0gcHAuaWQKICAgICAgICBXSEVSRSBwcGMueyR0YWJsZXNbJ29yZGVyX2ZrJ119ID0gOm9yZGVySWQKICAgICIpOwogICAgJHN0bXQtPmV4ZWN1dGUoWyc6b3JkZXJJZCcgPT4gJG9yZGVySWRdKTsKICAgICRwaXp6YXNDb21tYW5kZSA9ICRzdG10LT5mZXRjaEFsbCgpOwoKICAgICR0b3RhbE9yZGVyQW1vdW50ID0gMDsKCiAgICBmb3JlYWNoICgkcGl6emFzQ29tbWFuZGUgYXMgJHBpenphKSB7CiAgICAgICAgLy8gRMOpdGVybWluZXIgbGUgcHJpeCBkZSBiYXNlIHNlbG9uIGxhIHRhaWxsZQogICAgICAgICRiYXNlUHJpY2UgPSAkcGl6emFbJ2lzX3dlYl9hZGRpdGlvbiddID8gJHBpenphWydwcmljZV9tZWRpdW0nXSA6ICRwaXp6YVsncHJpY2VfbGFyZ2UnXTsKICAgICAgICAkdG90YWxPcmRlckFtb3VudCArPSAkYmFzZVByaWNlOwoKICAgICAgICAvLyBBam91dGVyIGxlIHByaXggZGVzIG9wdGlvbnMgZGUgY2hhcXVlIHBpenphCiAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCIKICAgICAgICAgICAgU0VMRUNUIGRhdGFfcHJpY2UKICAgICAgICAgICAgRlJPTSB7JHRhYmxlc1sncG9zX21vZGlmc19waXp6YXMnXX0KICAgICAgICAgICAgV0hFUkUgeyR0YWJsZXNbJ3BpenphX29wdGlvbl9mayddfSA9IDpwaXp6YUlkCiAgICAgICAgIik7CiAgICAgICAgJHN0bXQtPmV4ZWN1dGUoWyc6cGl6emFJZCcgPT4gJHBpenphWydpZCddXSk7CiAgICAgICAgJG9wdGlvbnMgPSAkc3RtdC0+ZmV0Y2hBbGwoKTsKCiAgICAgICAgZm9yZWFjaCAoJG9wdGlvbnMgYXMgJG9wdGlvbikgewogICAgICAgICAgICAkdG90YWxPcmRlckFtb3VudCArPSAkb3B0aW9uWydkYXRhX3ByaWNlJ107CiAgICAgICAgfQogICAgfQoKICAgIC8vIFLDqWN1cMOpcmVyIGxlIG1vbnRhbnQgdG90YWwgcGF5w6kKICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiCiAgICAgICAgU0VMRUNUIFNVTSh2YWRzX2Ftb3VudCkgQVMgdG90YWxfcGFpZAogICAgICAgIEZST00gcG9zX3BheQogICAgICAgIFdIRVJFIHZhZHNfb3JkZXJfaWQgPSA6b3JkZXJJZAogICAgICAgICAgQU5EIHZhZHNfcmVzdWx0ID0gJzAwJwogICAgICAgICAgQU5EIHZhZHNfb3JkZXJfaW5mbyA9IDpvcmRlckluZm8KICAgICIpOwogICAgJHN0bXQtPmV4ZWN1dGUoWwogICAgICAgICc6b3JkZXJJZCcgPT4gJG9yZGVySWQsCiAgICAgICAgJzpvcmRlckluZm8nID0+ICRzdG9yZUNvbmZpZ1sncGF5bWVudF9vcmRlcl9pbmZvJ10sCiAgICBdKTsKICAgICRwYXltZW50RGF0YSA9ICRzdG10LT5mZXRjaCgpOwogICAgLy8gQ2FsY3VsZXIgbGUgbW9udGFudCB0b3RhbCBwYXnDqSBlbiBldXJvcwogICAgJHRvdGFsUGFpZEFtb3VudCA9ICgkcGF5bWVudERhdGFbJ3RvdGFsX3BhaWQnXSA/PyAwKSAvIDEwMDsKCiAgICAvLyBDYWxjdWxlciBsZSBtb250YW50IHJlc3RhbnQgZMO7IGVuIGV1cm9zCiAgICAkcmVtYWluaW5nQW1vdW50ID0gJHRvdGFsT3JkZXJBbW91bnQgLSAkdG90YWxQYWlkQW1vdW50OwoKICAgIC8vIETDqXRlcm1pbmVyIHNpIGxhIGNvbW1hbmRlIGVzdCBwYXnDqWUKICAgICRpc1BhaWQgPSAkdG90YWxQYWlkQW1vdW50ID49ICR0b3RhbE9yZGVyQW1vdW50OwoKICAgIHJldHVybiBbCiAgICAgICAgJ3RvdGFsQW1vdW50JyA9PiAkdG90YWxPcmRlckFtb3VudCwKICAgICAgICAndG90YWxQYWlkJyA9PiAkdG90YWxQYWlkQW1vdW50LAogICAgICAgICdyZW1haW5pbmdBbW91bnQnID0+ICRyZW1haW5pbmdBbW91bnQsCiAgICAgICAgJ2lzUGFpZCcgPT4gJGlzUGFpZAogICAgXTsKfQoKZnVuY3Rpb24gYnVpbGRFZmZlY3RpdmVBZGRyZXNzRGF0YShhcnJheSAkb3JkZXIsID9hcnJheSAkdGVtcEFkZHJlc3MsIGFycmF5ICRzdG9yZUNvbmZpZyk6IGFycmF5IHsKICAgIGlmIChpc19hcnJheSgkdGVtcEFkZHJlc3MpICYmIHRyaW0oKHN0cmluZykoJHRlbXBBZGRyZXNzWydhZHJlc3NlJ10gPz8gJycpKSAhPT0gJycpIHsKICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAnaXNUZW1wb3JhcnknID0+IHRydWUsCiAgICAgICAgICAgICdhZHJlc3NlJyA9PiAoc3RyaW5nKSgkdGVtcEFkZHJlc3NbJ2FkcmVzc2UnXSA/PyAnJyksCiAgICAgICAgICAgICdjb21wbGVtZW50X2FkcmVzc2UnID0+IChzdHJpbmcpKCR0ZW1wQWRkcmVzc1snY29tcGxlbWVudF9hZHJlc3NlJ10gPz8gJycpLAogICAgICAgICAgICAnY29kZV9wb3N0YWwnID0+IChzdHJpbmcpKCR0ZW1wQWRkcmVzc1snY29kZV9wb3N0YWwnXSA/PyAkc3RvcmVDb25maWdbJ2RlZmF1bHRfcG9zdGNvZGUnXSksCiAgICAgICAgICAgICd2aWxsZScgPT4gKHN0cmluZykoJHRlbXBBZGRyZXNzWyd2aWxsZSddID8/ICRzdG9yZUNvbmZpZ1snZGVmYXVsdF9jaXR5J10pLAogICAgICAgICAgICAnbnVtZXJvX3VyZ2VuY2UnID0+IChzdHJpbmcpKCR0ZW1wQWRkcmVzc1snbnVtZXJvX3VyZ2VuY2UnXSA/PyAnJyksCiAgICAgICAgICAgICdsYXRpdHVkZScgPT4gKHN0cmluZykoJHRlbXBBZGRyZXNzWydsYXRpdHVkZSddID8/ICcnKSwKICAgICAgICAgICAgJ2xvbmdpdHVkZScgPT4gKHN0cmluZykoJHRlbXBBZGRyZXNzWydsb25naXR1ZGUnXSA/PyAnJyksCiAgICAgICAgICAgICdleHBsaWNhdGlvbnMnID0+IChzdHJpbmcpKCR0ZW1wQWRkcmVzc1snZXhwbGljYXRpb25zJ10gPz8gJycpLAogICAgICAgIF07CiAgICB9CgogICAgcmV0dXJuIFsKICAgICAgICAnaXNUZW1wb3JhcnknID0+IGZhbHNlLAogICAgICAgICdhZHJlc3NlJyA9PiAoc3RyaW5nKSgkb3JkZXJbJ2FkcmVzc2UnXSA/PyAnJyksCiAgICAgICAgJ2NvbXBsZW1lbnRfYWRyZXNzZScgPT4gKHN0cmluZykoJG9yZGVyWydjb21wbGVtZW50X2FkcmVzc2UnXSA/PyAnJyksCiAgICAgICAgJ2NvZGVfcG9zdGFsJyA9PiAoc3RyaW5nKSgkb3JkZXJbJ2NvZGVfcG9zdGFsJ10gPz8gJHN0b3JlQ29uZmlnWydkZWZhdWx0X3Bvc3Rjb2RlJ10pLAogICAgICAgICd2aWxsZScgPT4gKHN0cmluZykoJG9yZGVyWyd2aWxsZSddID8/ICRzdG9yZUNvbmZpZ1snZGVmYXVsdF9jaXR5J10pLAogICAgICAgICdudW1lcm9fdXJnZW5jZScgPT4gJycsCiAgICAgICAgJ2xhdGl0dWRlJyA9PiAoc3RyaW5nKSgkb3JkZXJbJ2xhdGl0dWRlJ10gPz8gJycpLAogICAgICAgICdsb25naXR1ZGUnID0+IChzdHJpbmcpKCRvcmRlclsnbG9uZ2l0dWRlJ10gPz8gJycpLAogICAgICAgICdleHBsaWNhdGlvbnMnID0+ICcnLAogICAgXTsKfQoKLy8gUsOpY3Vww6lyZXIgbGVzIGNvbW1hbmRlcyBkdSBqb3VyCiRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIHBjLiosIHNjLm5vbV9wcmVub20sIHNjLmFkcmVzc2UsIHNjLmNvbXBsZW1lbnRfYWRyZXNzZSwgc2MucGhvbmVOdW1iZXIsIHNjLmNvZGVfcG9zdGFsLCBzYy52aWxsZSwgc2MubnVtX3N1cHAxLCBzYy5udW1fc3VwcDIsIHNjLmxhdGl0dWRlLCBzYy5sb25naXR1ZGUKICAgICAgICAgICAgICAgICAgICAgICBGUk9NIHskdGFibGVzWydwb3NfY29tbWFuZGVzJ119IHBjCiAgICAgICAgICAgICAgICAgICAgICAgSk9JTiBzdGRfY2xpZW50cyBzYyBPTiBwYy5pZF9jbGllbnQgPSBzYy5pZAogICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIHBjLmxpdnJhaXNvbiA9IDEgCiAgICAgICAgICAgICAgICAgICAgICAgQU5EIHBjLnN0YXR1dCAhPSAnZGVsZXRlZCcKICAgICAgICAgICAgICAgICAgICAgICBBTkQgcGMuaGV1cmVfcHJlcGEgPj0gOnRpbWVzdGFtcFN0YXJ0T2ZEYXkKICAgICAgICAgICAgICAgICAgICAgICBPUkRFUiBCWSBwYy5oZXVyZV9wcmVwYSBBU0MiKTsKJHN0bXQtPmV4ZWN1dGUoWyc6dGltZXN0YW1wU3RhcnRPZkRheScgPT4gJHRpbWVzdGFtcFN0YXJ0T2ZEYXldKTsKJG9yZGVycyA9ICRzdG10LT5mZXRjaEFsbCgpOwoKJHJlc3BvbnNlID0gW107Cgpmb3JlYWNoICgkb3JkZXJzIGFzICRvcmRlcikgewogICAgJG9yZGVySWQgPSAoaW50KSRvcmRlclsnaWQnXTsKICAgIC8vIENhbGN1bGVyIGxlcyBkw6l0YWlscyBkZSBwYWllbWVudCBkZSBsYSBjb21tYW5kZQogICAgJHBheW1lbnREZXRhaWxzID0gY2FsY3VsYXRlT3JkZXJQYXltZW50KCRwZG8sICRzdG9yZUNvbmZpZywgJG9yZGVySWQpOwoKICAgIC8vIFLDqWN1cMOpcmVyIGxlcyBwaXp6YXMgZXQgbGV1cnMgbW9kaWZpY2F0aW9ucy9vcHRpb25zCiAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCBwcGMuKiwgcHAubmFtZSBBUyBwaXp6YV9uYW1lLCBwcC5wcmljZV9sYXJnZSwgcHAucHJpY2VfbWVkaXVtCiAgICAgICAgICAgICAgICAgICAgICAgICAgIEZST00geyR0YWJsZXNbJ3Bvc19waXp6YXNfY29tbWFuZGVlcyddfSBwcGMKICAgICAgICAgICAgICAgICAgICAgICAgICAgSk9JTiBwb3NfcGl6emFzIHBwIE9OIHBwYy5pZF9wb3NfcGl6emFzID0gcHAuaWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUgcHBjLnskdGFibGVzWydvcmRlcl9mayddfSA9IDpvcmRlcklkIik7CiAgICAkc3RtdC0+ZXhlY3V0ZShbJzpvcmRlcklkJyA9PiAkb3JkZXJJZF0pOwogICAgJHBpenphcyA9ICRzdG10LT5mZXRjaEFsbCgpOwoKICAgIGZvcmVhY2ggKCRwaXp6YXMgYXMgJGtleSA9PiAkcGl6emEpIHsKICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIgogICAgICAgICAgICBTRUxFQ1Qgbm9tX29wdGlvbiwgY2xhc3Nfb3B0aW9uLCBkYXRhX3ByaWNlCiAgICAgICAgICAgIEZST00geyR0YWJsZXNbJ3Bvc19tb2RpZnNfcGl6emFzJ119CiAgICAgICAgICAgIFdIRVJFIHskdGFibGVzWydwaXp6YV9vcHRpb25fZmsnXX0gPSA6cGl6emFJZAogICAgICAgICIpOwogICAgICAgICRzdG10LT5leGVjdXRlKFsnOnBpenphSWQnID0+ICRwaXp6YVsnaWQnXV0pOwogICAgICAgICRvcHRpb25zID0gJHN0bXQtPmZldGNoQWxsKCk7CiAgICAgICAgJHBpenphc1ska2V5XVsnb3B0aW9ucyddID0gJG9wdGlvbnM7CiAgICB9CgogICAgLy8gUsOpY3Vww6lyZXIgbGVzIGTDqXRhaWxzIGRlIGwnYWRyZXNzZSB0ZW1wb3JhaXJlIHNpIGRpc3BvbmlibGUKICAgICR0ZW1wQWRkcmVzcyA9IG51bGw7CiAgICAkdGVtcEFkZHJlc3NJZCA9IG51bGw7CiAgICBpZiAoaXNzZXQoJG9yZGVyWyd0ZW1wX2FkZHJlc3NfaWQnXSkgJiYgJG9yZGVyWyd0ZW1wX2FkZHJlc3NfaWQnXSAhPT0gbnVsbCkgewogICAgICAgICR0ZW1wQWRkcmVzc0lkID0gJG9yZGVyWyd0ZW1wX2FkZHJlc3NfaWQnXTsKICAgIH0gZWxzZWlmIChpc3NldCgkb3JkZXJbJ2FkcmVzc2VfdGVtcG9yYWlyZSddKSAmJiAkb3JkZXJbJ2FkcmVzc2VfdGVtcG9yYWlyZSddICE9PSBudWxsKSB7CiAgICAgICAgJHRlbXBBZGRyZXNzSWQgPSAkb3JkZXJbJ2FkcmVzc2VfdGVtcG9yYWlyZSddOwogICAgfQoKICAgIGlmICgkdGVtcEFkZHJlc3NJZCAhPT0gbnVsbCkgewogICAgICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUICogRlJPTSBwb3NfdGVtcF9hZHJlc3NlcyBXSEVSRSBpZCA9IDp0ZW1wQWRkcmVzc0lkIik7CiAgICAgICAgJHN0bXQtPmV4ZWN1dGUoWyc6dGVtcEFkZHJlc3NJZCcgPT4gJHRlbXBBZGRyZXNzSWRdKTsKICAgICAgICAkdGVtcEFkZHJlc3MgPSAkc3RtdC0+ZmV0Y2goKTsKICAgIH0KCiAgICAkb3JkZXJbJ3RlbXBBZGRyZXNzJ10gPSAkdGVtcEFkZHJlc3M7CiAgICAkZWZmZWN0aXZlQWRkcmVzcyA9IGJ1aWxkRWZmZWN0aXZlQWRkcmVzc0RhdGEoJG9yZGVyLCBpc19hcnJheSgkdGVtcEFkZHJlc3MpID8gJHRlbXBBZGRyZXNzIDogbnVsbCwgJHN0b3JlQ29uZmlnKTsKICAgICRoYXNDb29yZGluYXRlcyA9IHRyaW0oKHN0cmluZykkZWZmZWN0aXZlQWRkcmVzc1snbGF0aXR1ZGUnXSkgIT09ICcnICYmIHRyaW0oKHN0cmluZykkZWZmZWN0aXZlQWRkcmVzc1snbG9uZ2l0dWRlJ10pICE9PSAnJzsKICAgICRvcmRlclsnZWZmZWN0aXZlQWRkcmVzcyddID0gJGVmZmVjdGl2ZUFkZHJlc3M7CgogICAgLy8gQWpvdXRlciBsZXMgZMOpdGFpbHMgZGUgbGEgY29tbWFuZGUsIGxlcyBwaXp6YXMsIGxlcyBkw6l0YWlscyBkZSBwYWllbWVudCwgZXQgbCdhZHJlc3NlIHRlbXBvcmFpcmUgYXUgdGFibGVhdSBkZSByw6lwb25zZQogICAgJHJlc3BvbnNlW10gPSBbCiAgICAgICAgJ3N0b3JlJyA9PiBbCiAgICAgICAgICAgICdjb2RlJyA9PiAkc3RvcmVDb25maWdbJ2NvZGUnXSwKICAgICAgICAgICAgJ2xhYmVsJyA9PiAkc3RvcmVDb25maWdbJ2xhYmVsJ10sCiAgICAgICAgICAgICdkZWZhdWx0Q2l0eScgPT4gJHN0b3JlQ29uZmlnWydkZWZhdWx0X2NpdHknXSwKICAgICAgICAgICAgJ2RlZmF1bHRQb3N0Y29kZScgPT4gJHN0b3JlQ29uZmlnWydkZWZhdWx0X3Bvc3Rjb2RlJ10sCiAgICAgICAgXSwKICAgICAgICAnb3JkZXInID0+ICRvcmRlciwKICAgICAgICAncGl6emFzJyA9PiAkcGl6emFzLAogICAgICAgICdwYXltZW50RGV0YWlscycgPT4gJHBheW1lbnREZXRhaWxzLAogICAgICAgICdoYXNDb29yZGluYXRlcycgPT4gJGhhc0Nvb3JkaW5hdGVzLAogICAgICAgICd0ZW1wQWRkcmVzcycgPT4gJHRlbXBBZGRyZXNzLAogICAgICAgICdlZmZlY3RpdmVBZGRyZXNzJyA9PiAkZWZmZWN0aXZlQWRkcmVzcwogICAgXTsKfQoKZWNobyBqc29uX2VuY29kZSgkcmVzcG9uc2UpOwo/Pgo="
            },
            "after": {
                "exists": true,
                "kind": "file",
                "size": 9849,
                "sha1": "c01653cdc4fcb593b4eb6299587a708e65d6b1bc",
                "content_b64": "PD9waHAKLyogZG9jLXByb2plY3QgfCBsaXZyZXVyL2dldF9vcmRlcnMucGhwIHwgRm91cm5pdCBlbiBKU09OIGxlcyBjb21tYW5kZXMgZGUgbGl2cmFpc29uIGR1IGpvdXIgcG91ciBsZSBzdG9yZSBjb3VyYW50IHZpYSB1biBtYXBwaW5nIGRlIHRhYmxlcyBtdXR1YWxpc8OpLCBhdmVjIHLDqXNvbHV0aW9uIGTigJlhZHJlc3NlIGVmZmVjdGl2ZSAodGVtcG9yYWlyZSBwcmlvcml0YWlyZSkgcG91ciBhZmZpY2hhZ2UgZXQgbmF2aWdhdGlvbiwgZXQgZMOpdGVjdGlvbiByb2J1c3RlIGR1IHBhaWVtZW50IGVuIGxpZ25lIGNlbnRyYWxpc8OpZSB2aWEgb25saW5lUGF5bWVudHMucGhwIGVuIGNlbnRpbWVzLiB8IEV4cG9zZTogbGl2cmV1ck5vcm1hbGl6ZUFtb3VudFRvQ2VudGltZXMsIGNhbGN1bGF0ZU9yZGVySXRlbXNUb3RhbENlbnRpbWVzLCBjYWxjdWxhdGVPcmRlclBheW1lbnQsIGJ1aWxkRWZmZWN0aXZlQWRkcmVzc0RhdGEgfCBEw6lwZW5kIGRlOiBsaXZyZXVyL2F1dGhfbWFnaWMucGhwLCBsaXZyZXVyL2NvbmZpZy5waHAsIGxpdnJldXIvbGliL3N0b3JlLnBocCwgY2Fpc3NlLWFxcC9wdWJsaWMvYXBpL19saWIvb25saW5lUGF5bWVudHMucGhwLCB0YWJsZXMgUE9TIHNlbG9uIHN0b3JlLCBwb3NfcGF5LCBwb3NfdGVtcF9hZHJlc3NlcyB8IEltcGFjdGU6IHLDqXBvbnNlIEFQSSBKU09OLCBsZWN0dXJlIEJERCBtdWx0aS1zdG9yZSwgYmFkZ2UgcGFpZW1lbnQgbGl2cmV1ciwgbmF2aWdhdGlvbiBsaXZyZXVyIHwgVGFibGVzOiBwb3NfY29tbWFuZGVzKiwgc3RkX2NsaWVudHMsIHBvc19waXp6YXNfY29tbWFuZGVlcyosIHBvc19waXp6YXMsIHBvc19tb2RpZnNfcGl6emFzKiwgcG9zX3BheSwgcG9zX3RlbXBfYWRyZXNzZXMgKi8KcmVxdWlyZV9vbmNlIF9fRElSX18gLiAnL2F1dGhfbWFnaWMucGhwJzsKcmVxdWlyZV9vbmNlIGRpcm5hbWUoX19ESVJfXykgLiAnL2NhaXNzZS1hcXAvcHVibGljL2FwaS9fbGliL29ubGluZVBheW1lbnRzLnBocCc7CnJlcXVpcmVfZHJpdmVyX2F1dGgoJ2pzb24nKTsKaGVhZGVyKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnKTsKCmRhdGVfZGVmYXVsdF90aW1lem9uZV9zZXQoJ0V1cm9wZS9QYXJpcycpOwokY3VycmVudERhdGUgPSBuZXcgRGF0ZVRpbWUoKTsKJGN1cnJlbnREYXRlLT5zZXRUaW1lKDAsIDApOyAvLyBEw6lidXQgZGUgbGEgam91cm7DqWUKCiR0aW1lc3RhbXBTdGFydE9mRGF5ID0gJGN1cnJlbnREYXRlLT5nZXRUaW1lc3RhbXAoKSAqIDEwMDA7CiRzdG9yZUNvbmZpZyA9IGxpdnJldXJfc3RvcmVfY3VycmVudF9jb25maWcoKTsKJHRhYmxlcyA9ICRzdG9yZUNvbmZpZ1sndGFibGVzJ107CgpmdW5jdGlvbiBsaXZyZXVyTm9ybWFsaXplQW1vdW50VG9DZW50aW1lcygkYW1vdW50KTogaW50IHsKICAgIGlmICgkYW1vdW50ID09PSBudWxsIHx8ICRhbW91bnQgPT09ICcnKSB7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CiAgICBpZiAoaXNfc3RyaW5nKCRhbW91bnQpKSB7CiAgICAgICAgJGFtb3VudCA9IHN0cl9yZXBsYWNlKFsnICcsICcsJ10sIFsnJywgJy4nXSwgJGFtb3VudCk7CiAgICB9CiAgICAkdmFsdWUgPSAoZmxvYXQpJGFtb3VudDsKICAgIGlmICghaXNfZmluaXRlKCR2YWx1ZSkpIHsKICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIHJldHVybiAoaW50KXJvdW5kKCR2YWx1ZSAqIDEwMCk7Cn0KCmZ1bmN0aW9uIGNhbGN1bGF0ZU9yZGVySXRlbXNUb3RhbENlbnRpbWVzKFBETyAkcGRvLCBhcnJheSAkc3RvcmVDb25maWcsIGludCAkb3JkZXJJZCk6IGludCB7CiAgICAkdGFibGVzID0gJHN0b3JlQ29uZmlnWyd0YWJsZXMnXTsKICAgIC8vIFLDqWN1cMOpcmVyIGxlcyBwaXp6YXMgY29tbWFuZMOpZXMgZXQgY2FsY3VsZXIgbGUgdG90YWwgZGUgbGEgY29tbWFuZGUKICAgICRzdG10ID0gJHBkby0+cHJlcGFyZSgiCiAgICAgICAgU0VMRUNUIHBwYy5pZCwgcHBjLmlkX3Bvc19waXp6YXMsIHBwYy5pc193ZWJfYWRkaXRpb24sIHBwLnByaWNlX2xhcmdlLCBwcC5wcmljZV9tZWRpdW0KICAgICAgICBGUk9NIHskdGFibGVzWydwb3NfcGl6emFzX2NvbW1hbmRlZXMnXX0gcHBjCiAgICAgICAgSk9JTiBwb3NfcGl6emFzIHBwIE9OIHBwYy5pZF9wb3NfcGl6emFzID0gcHAuaWQKICAgICAgICBXSEVSRSBwcGMueyR0YWJsZXNbJ29yZGVyX2ZrJ119ID0gOm9yZGVySWQKICAgICIpOwogICAgJHN0bXQtPmV4ZWN1dGUoWyc6b3JkZXJJZCcgPT4gJG9yZGVySWRdKTsKICAgICRwaXp6YXNDb21tYW5kZSA9ICRzdG10LT5mZXRjaEFsbCgpOwoKICAgICR0b3RhbE9yZGVyQ2VudGltZXMgPSAwOwoKICAgIGZvcmVhY2ggKCRwaXp6YXNDb21tYW5kZSBhcyAkcGl6emEpIHsKICAgICAgICAvLyBEw6l0ZXJtaW5lciBsZSBwcml4IGRlIGJhc2Ugc2Vsb24gbGEgdGFpbGxlCiAgICAgICAgJGJhc2VQcmljZSA9ICRwaXp6YVsnaXNfd2ViX2FkZGl0aW9uJ10gPyAkcGl6emFbJ3ByaWNlX21lZGl1bSddIDogJHBpenphWydwcmljZV9sYXJnZSddOwogICAgICAgICR0b3RhbE9yZGVyQ2VudGltZXMgKz0gbGl2cmV1ck5vcm1hbGl6ZUFtb3VudFRvQ2VudGltZXMoJGJhc2VQcmljZSk7CgogICAgICAgIC8vIEFqb3V0ZXIgbGUgcHJpeCBkZXMgb3B0aW9ucyBkZSBjaGFxdWUgcGl6emEKICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIgogICAgICAgICAgICBTRUxFQ1QgZGF0YV9wcmljZQogICAgICAgICAgICBGUk9NIHskdGFibGVzWydwb3NfbW9kaWZzX3BpenphcyddfQogICAgICAgICAgICBXSEVSRSB7JHRhYmxlc1sncGl6emFfb3B0aW9uX2ZrJ119ID0gOnBpenphSWQKICAgICAgICAiKTsKICAgICAgICAkc3RtdC0+ZXhlY3V0ZShbJzpwaXp6YUlkJyA9PiAkcGl6emFbJ2lkJ11dKTsKICAgICAgICAkb3B0aW9ucyA9ICRzdG10LT5mZXRjaEFsbCgpOwoKICAgICAgICBmb3JlYWNoICgkb3B0aW9ucyBhcyAkb3B0aW9uKSB7CiAgICAgICAgICAgICR0b3RhbE9yZGVyQ2VudGltZXMgKz0gbGl2cmV1ck5vcm1hbGl6ZUFtb3VudFRvQ2VudGltZXMoJG9wdGlvblsnZGF0YV9wcmljZSddKTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICR0b3RhbE9yZGVyQ2VudGltZXM7Cn0KCi8vIEZvbmN0aW9uIHBvdXIgY2FsY3VsZXIgbGVzIGTDqXRhaWxzIGRlIHBhaWVtZW50CmZ1bmN0aW9uIGNhbGN1bGF0ZU9yZGVyUGF5bWVudChQRE8gJHBkbywgYXJyYXkgJHN0b3JlQ29uZmlnLCBhcnJheSAkb3JkZXIpOiBhcnJheSB7CiAgICAkb3JkZXJJZCA9IGlzc2V0KCRvcmRlclsnaWQnXSkgPyAoaW50KSRvcmRlclsnaWQnXSA6IDA7CiAgICBpZiAoJG9yZGVySWQgPD0gMCkgewogICAgICAgIHJldHVybiBbCiAgICAgICAgICAgICd0b3RhbEFtb3VudCcgPT4gMC4wLAogICAgICAgICAgICAndG90YWxQYWlkJyA9PiAwLjAsCiAgICAgICAgICAgICdyZW1haW5pbmdBbW91bnQnID0+IDAuMCwKICAgICAgICAgICAgJ3RvdGFsQW1vdW50Q2VudGltZXMnID0+IDAsCiAgICAgICAgICAgICd0b3RhbFBhaWRDZW50aW1lcycgPT4gMCwKICAgICAgICAgICAgJ3JlbWFpbmluZ0Ftb3VudENlbnRpbWVzJyA9PiAwLAogICAgICAgICAgICAnaXNQYWlkJyA9PiBmYWxzZSwKICAgICAgICBdOwogICAgfQoKICAgICR0b3RhbE9yZGVyQ2VudGltZXMgPSBsaXZyZXVyTm9ybWFsaXplQW1vdW50VG9DZW50aW1lcygkb3JkZXJbJ3ByaXhfY29tJ10gPz8gbnVsbCk7CiAgICBpZiAoJHRvdGFsT3JkZXJDZW50aW1lcyA8PSAwKSB7CiAgICAgICAgJHRvdGFsT3JkZXJDZW50aW1lcyA9IGNhbGN1bGF0ZU9yZGVySXRlbXNUb3RhbENlbnRpbWVzKCRwZG8sICRzdG9yZUNvbmZpZywgJG9yZGVySWQpOwogICAgfQoKICAgICRwYXltZW50TWF0Y2hWYWx1ZXMgPSBbCiAgICAgICAgJG9yZGVySWQsCiAgICAgICAgJG9yZGVyWydpZF9kYXRlJ10gPz8gbnVsbCwKICAgICAgICAkb3JkZXJbJ3BheUxpbmsnXSA/PyBudWxsLAogICAgICAgICRvcmRlclsncGF5bGluayddID8/IG51bGwsCiAgICBdOwoKICAgICRwYXltZW50RGF0YSA9IGdldF9zdWNjZXNzZnVsX29ubGluZV9wYXltZW50X3RvdGFsX2NlbnRpbWVzX2Zvcl9vcmRlcigKICAgICAgICAkcGRvLAogICAgICAgICRvcmRlcklkLAogICAgICAgICRzdG9yZUNvbmZpZ1sncGF5bWVudF9vcmRlcl9pbmZvJ10gPz8gJHN0b3JlQ29uZmlnWydjb2RlJ10gPz8gJycsCiAgICAgICAgJHBheW1lbnRNYXRjaFZhbHVlcwogICAgKTsKCiAgICAkdG90YWxQYWlkQ2VudGltZXMgPSAoaW50KSgkcGF5bWVudERhdGFbJ3RvdGFsX3BhaWRfY2VudGltZXMnXSA/PyAwKTsKICAgICRyZW1haW5pbmdDZW50aW1lcyA9IG1heCgwLCAkdG90YWxPcmRlckNlbnRpbWVzIC0gJHRvdGFsUGFpZENlbnRpbWVzKTsKCiAgICAvLyBUb2zDqXJhbmNlIGTigJl1biBjZW50aW1lIHBvdXIgbmV1dHJhbGlzZXIgbGVzIMOpY2FydHMgZGUgbm9ybWFsaXNhdGlvbiBldXJvcyAtPiBjZW50aW1lcy4KICAgICRpc1BhaWQgPSAkdG90YWxPcmRlckNlbnRpbWVzID4gMCAmJiAoJHRvdGFsUGFpZENlbnRpbWVzICsgMSkgPj0gJHRvdGFsT3JkZXJDZW50aW1lczsKCiAgICByZXR1cm4gWwogICAgICAgICd0b3RhbEFtb3VudCcgPT4gcm91bmQoJHRvdGFsT3JkZXJDZW50aW1lcyAvIDEwMCwgMiksCiAgICAgICAgJ3RvdGFsUGFpZCcgPT4gcm91bmQoJHRvdGFsUGFpZENlbnRpbWVzIC8gMTAwLCAyKSwKICAgICAgICAncmVtYWluaW5nQW1vdW50JyA9PiByb3VuZCgkcmVtYWluaW5nQ2VudGltZXMgLyAxMDAsIDIpLAogICAgICAgICd0b3RhbEFtb3VudENlbnRpbWVzJyA9PiAkdG90YWxPcmRlckNlbnRpbWVzLAogICAgICAgICd0b3RhbFBhaWRDZW50aW1lcycgPT4gJHRvdGFsUGFpZENlbnRpbWVzLAogICAgICAgICdyZW1haW5pbmdBbW91bnRDZW50aW1lcycgPT4gJHJlbWFpbmluZ0NlbnRpbWVzLAogICAgICAgICdtYXRjaGVkUGF5bWVudFJvd3MnID0+IChpbnQpKCRwYXltZW50RGF0YVsnbWF0Y2hlZF9yb3dzJ10gPz8gMCksCiAgICAgICAgJ2lzUGFpZCcgPT4gJGlzUGFpZAogICAgXTsKfQoKZnVuY3Rpb24gYnVpbGRFZmZlY3RpdmVBZGRyZXNzRGF0YShhcnJheSAkb3JkZXIsID9hcnJheSAkdGVtcEFkZHJlc3MsIGFycmF5ICRzdG9yZUNvbmZpZyk6IGFycmF5IHsKICAgIGlmIChpc19hcnJheSgkdGVtcEFkZHJlc3MpICYmIHRyaW0oKHN0cmluZykoJHRlbXBBZGRyZXNzWydhZHJlc3NlJ10gPz8gJycpKSAhPT0gJycpIHsKICAgICAgICByZXR1cm4gWwogICAgICAgICAgICAnaXNUZW1wb3JhcnknID0+IHRydWUsCiAgICAgICAgICAgICdhZHJlc3NlJyA9PiAoc3RyaW5nKSgkdGVtcEFkZHJlc3NbJ2FkcmVzc2UnXSA/PyAnJyksCiAgICAgICAgICAgICdjb21wbGVtZW50X2FkcmVzc2UnID0+IChzdHJpbmcpKCR0ZW1wQWRkcmVzc1snY29tcGxlbWVudF9hZHJlc3NlJ10gPz8gJycpLAogICAgICAgICAgICAnY29kZV9wb3N0YWwnID0+IChzdHJpbmcpKCR0ZW1wQWRkcmVzc1snY29kZV9wb3N0YWwnXSA/PyAkc3RvcmVDb25maWdbJ2RlZmF1bHRfcG9zdGNvZGUnXSksCiAgICAgICAgICAgICd2aWxsZScgPT4gKHN0cmluZykoJHRlbXBBZGRyZXNzWyd2aWxsZSddID8/ICRzdG9yZUNvbmZpZ1snZGVmYXVsdF9jaXR5J10pLAogICAgICAgICAgICAnbnVtZXJvX3VyZ2VuY2UnID0+IChzdHJpbmcpKCR0ZW1wQWRkcmVzc1snbnVtZXJvX3VyZ2VuY2UnXSA/PyAnJyksCiAgICAgICAgICAgICdsYXRpdHVkZScgPT4gKHN0cmluZykoJHRlbXBBZGRyZXNzWydsYXRpdHVkZSddID8/ICcnKSwKICAgICAgICAgICAgJ2xvbmdpdHVkZScgPT4gKHN0cmluZykoJHRlbXBBZGRyZXNzWydsb25naXR1ZGUnXSA/PyAnJyksCiAgICAgICAgICAgICdleHBsaWNhdGlvbnMnID0+IChzdHJpbmcpKCR0ZW1wQWRkcmVzc1snZXhwbGljYXRpb25zJ10gPz8gJycpLAogICAgICAgIF07CiAgICB9CgogICAgcmV0dXJuIFsKICAgICAgICAnaXNUZW1wb3JhcnknID0+IGZhbHNlLAogICAgICAgICdhZHJlc3NlJyA9PiAoc3RyaW5nKSgkb3JkZXJbJ2FkcmVzc2UnXSA/PyAnJyksCiAgICAgICAgJ2NvbXBsZW1lbnRfYWRyZXNzZScgPT4gKHN0cmluZykoJG9yZGVyWydjb21wbGVtZW50X2FkcmVzc2UnXSA/PyAnJyksCiAgICAgICAgJ2NvZGVfcG9zdGFsJyA9PiAoc3RyaW5nKSgkb3JkZXJbJ2NvZGVfcG9zdGFsJ10gPz8gJHN0b3JlQ29uZmlnWydkZWZhdWx0X3Bvc3Rjb2RlJ10pLAogICAgICAgICd2aWxsZScgPT4gKHN0cmluZykoJG9yZGVyWyd2aWxsZSddID8/ICRzdG9yZUNvbmZpZ1snZGVmYXVsdF9jaXR5J10pLAogICAgICAgICdudW1lcm9fdXJnZW5jZScgPT4gJycsCiAgICAgICAgJ2xhdGl0dWRlJyA9PiAoc3RyaW5nKSgkb3JkZXJbJ2xhdGl0dWRlJ10gPz8gJycpLAogICAgICAgICdsb25naXR1ZGUnID0+IChzdHJpbmcpKCRvcmRlclsnbG9uZ2l0dWRlJ10gPz8gJycpLAogICAgICAgICdleHBsaWNhdGlvbnMnID0+ICcnLAogICAgXTsKfQoKLy8gUsOpY3Vww6lyZXIgbGVzIGNvbW1hbmRlcyBkdSBqb3VyCiRzdG10ID0gJHBkby0+cHJlcGFyZSgiU0VMRUNUIHBjLiosIHNjLm5vbV9wcmVub20sIHNjLmFkcmVzc2UsIHNjLmNvbXBsZW1lbnRfYWRyZXNzZSwgc2MucGhvbmVOdW1iZXIsIHNjLmNvZGVfcG9zdGFsLCBzYy52aWxsZSwgc2MubnVtX3N1cHAxLCBzYy5udW1fc3VwcDIsIHNjLmxhdGl0dWRlLCBzYy5sb25naXR1ZGUKICAgICAgICAgICAgICAgICAgICAgICBGUk9NIHskdGFibGVzWydwb3NfY29tbWFuZGVzJ119IHBjCiAgICAgICAgICAgICAgICAgICAgICAgSk9JTiBzdGRfY2xpZW50cyBzYyBPTiBwYy5pZF9jbGllbnQgPSBzYy5pZAogICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIHBjLmxpdnJhaXNvbiA9IDEgCiAgICAgICAgICAgICAgICAgICAgICAgQU5EIHBjLnN0YXR1dCAhPSAnZGVsZXRlZCcKICAgICAgICAgICAgICAgICAgICAgICBBTkQgcGMuaGV1cmVfcHJlcGEgPj0gOnRpbWVzdGFtcFN0YXJ0T2ZEYXkKICAgICAgICAgICAgICAgICAgICAgICBPUkRFUiBCWSBwYy5oZXVyZV9wcmVwYSBBU0MiKTsKJHN0bXQtPmV4ZWN1dGUoWyc6dGltZXN0YW1wU3RhcnRPZkRheScgPT4gJHRpbWVzdGFtcFN0YXJ0T2ZEYXldKTsKJG9yZGVycyA9ICRzdG10LT5mZXRjaEFsbCgpOwoKJHJlc3BvbnNlID0gW107Cgpmb3JlYWNoICgkb3JkZXJzIGFzICRvcmRlcikgewogICAgJG9yZGVySWQgPSAoaW50KSRvcmRlclsnaWQnXTsKICAgIC8vIENhbGN1bGVyIGxlcyBkw6l0YWlscyBkZSBwYWllbWVudCBkZSBsYSBjb21tYW5kZQogICAgJHBheW1lbnREZXRhaWxzID0gY2FsY3VsYXRlT3JkZXJQYXltZW50KCRwZG8sICRzdG9yZUNvbmZpZywgJG9yZGVyKTsKCiAgICAvLyBSw6ljdXDDqXJlciBsZXMgcGl6emFzIGV0IGxldXJzIG1vZGlmaWNhdGlvbnMvb3B0aW9ucwogICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCJTRUxFQ1QgcHBjLiosIHBwLm5hbWUgQVMgcGl6emFfbmFtZSwgcHAucHJpY2VfbGFyZ2UsIHBwLnByaWNlX21lZGl1bQogICAgICAgICAgICAgICAgICAgICAgICAgICBGUk9NIHskdGFibGVzWydwb3NfcGl6emFzX2NvbW1hbmRlZXMnXX0gcHBjCiAgICAgICAgICAgICAgICAgICAgICAgICAgIEpPSU4gcG9zX3BpenphcyBwcCBPTiBwcGMuaWRfcG9zX3BpenphcyA9IHBwLmlkCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIHBwYy57JHRhYmxlc1snb3JkZXJfZmsnXX0gPSA6b3JkZXJJZCIpOwogICAgJHN0bXQtPmV4ZWN1dGUoWyc6b3JkZXJJZCcgPT4gJG9yZGVySWRdKTsKICAgICRwaXp6YXMgPSAkc3RtdC0+ZmV0Y2hBbGwoKTsKCiAgICBmb3JlYWNoICgkcGl6emFzIGFzICRrZXkgPT4gJHBpenphKSB7CiAgICAgICAgJHN0bXQgPSAkcGRvLT5wcmVwYXJlKCIKICAgICAgICAgICAgU0VMRUNUIG5vbV9vcHRpb24sIGNsYXNzX29wdGlvbiwgZGF0YV9wcmljZQogICAgICAgICAgICBGUk9NIHskdGFibGVzWydwb3NfbW9kaWZzX3BpenphcyddfQogICAgICAgICAgICBXSEVSRSB7JHRhYmxlc1sncGl6emFfb3B0aW9uX2ZrJ119ID0gOnBpenphSWQKICAgICAgICAiKTsKICAgICAgICAkc3RtdC0+ZXhlY3V0ZShbJzpwaXp6YUlkJyA9PiAkcGl6emFbJ2lkJ11dKTsKICAgICAgICAkb3B0aW9ucyA9ICRzdG10LT5mZXRjaEFsbCgpOwogICAgICAgICRwaXp6YXNbJGtleV1bJ29wdGlvbnMnXSA9ICRvcHRpb25zOwogICAgfQoKICAgIC8vIFLDqWN1cMOpcmVyIGxlcyBkw6l0YWlscyBkZSBsJ2FkcmVzc2UgdGVtcG9yYWlyZSBzaSBkaXNwb25pYmxlCiAgICAkdGVtcEFkZHJlc3MgPSBudWxsOwogICAgJHRlbXBBZGRyZXNzSWQgPSBudWxsOwogICAgaWYgKGlzc2V0KCRvcmRlclsndGVtcF9hZGRyZXNzX2lkJ10pICYmICRvcmRlclsndGVtcF9hZGRyZXNzX2lkJ10gIT09IG51bGwpIHsKICAgICAgICAkdGVtcEFkZHJlc3NJZCA9ICRvcmRlclsndGVtcF9hZGRyZXNzX2lkJ107CiAgICB9IGVsc2VpZiAoaXNzZXQoJG9yZGVyWydhZHJlc3NlX3RlbXBvcmFpcmUnXSkgJiYgJG9yZGVyWydhZHJlc3NlX3RlbXBvcmFpcmUnXSAhPT0gbnVsbCkgewogICAgICAgICR0ZW1wQWRkcmVzc0lkID0gJG9yZGVyWydhZHJlc3NlX3RlbXBvcmFpcmUnXTsKICAgIH0KCiAgICBpZiAoJHRlbXBBZGRyZXNzSWQgIT09IG51bGwpIHsKICAgICAgICAkc3RtdCA9ICRwZG8tPnByZXBhcmUoIlNFTEVDVCAqIEZST00gcG9zX3RlbXBfYWRyZXNzZXMgV0hFUkUgaWQgPSA6dGVtcEFkZHJlc3NJZCIpOwogICAgICAgICRzdG10LT5leGVjdXRlKFsnOnRlbXBBZGRyZXNzSWQnID0+ICR0ZW1wQWRkcmVzc0lkXSk7CiAgICAgICAgJHRlbXBBZGRyZXNzID0gJHN0bXQtPmZldGNoKCk7CiAgICB9CgogICAgJG9yZGVyWyd0ZW1wQWRkcmVzcyddID0gJHRlbXBBZGRyZXNzOwogICAgJGVmZmVjdGl2ZUFkZHJlc3MgPSBidWlsZEVmZmVjdGl2ZUFkZHJlc3NEYXRhKCRvcmRlciwgaXNfYXJyYXkoJHRlbXBBZGRyZXNzKSA/ICR0ZW1wQWRkcmVzcyA6IG51bGwsICRzdG9yZUNvbmZpZyk7CiAgICAkaGFzQ29vcmRpbmF0ZXMgPSB0cmltKChzdHJpbmcpJGVmZmVjdGl2ZUFkZHJlc3NbJ2xhdGl0dWRlJ10pICE9PSAnJyAmJiB0cmltKChzdHJpbmcpJGVmZmVjdGl2ZUFkZHJlc3NbJ2xvbmdpdHVkZSddKSAhPT0gJyc7CiAgICAkb3JkZXJbJ2VmZmVjdGl2ZUFkZHJlc3MnXSA9ICRlZmZlY3RpdmVBZGRyZXNzOwoKICAgIC8vIEFqb3V0ZXIgbGVzIGTDqXRhaWxzIGRlIGxhIGNvbW1hbmRlLCBsZXMgcGl6emFzLCBsZXMgZMOpdGFpbHMgZGUgcGFpZW1lbnQsIGV0IGwnYWRyZXNzZSB0ZW1wb3JhaXJlIGF1IHRhYmxlYXUgZGUgcsOpcG9uc2UKICAgICRyZXNwb25zZVtdID0gWwogICAgICAgICdzdG9yZScgPT4gWwogICAgICAgICAgICAnY29kZScgPT4gJHN0b3JlQ29uZmlnWydjb2RlJ10sCiAgICAgICAgICAgICdsYWJlbCcgPT4gJHN0b3JlQ29uZmlnWydsYWJlbCddLAogICAgICAgICAgICAnZGVmYXVsdENpdHknID0+ICRzdG9yZUNvbmZpZ1snZGVmYXVsdF9jaXR5J10sCiAgICAgICAgICAgICdkZWZhdWx0UG9zdGNvZGUnID0+ICRzdG9yZUNvbmZpZ1snZGVmYXVsdF9wb3N0Y29kZSddLAogICAgICAgIF0sCiAgICAgICAgJ29yZGVyJyA9PiAkb3JkZXIsCiAgICAgICAgJ3BpenphcycgPT4gJHBpenphcywKICAgICAgICAncGF5bWVudERldGFpbHMnID0+ICRwYXltZW50RGV0YWlscywKICAgICAgICAnaGFzQ29vcmRpbmF0ZXMnID0+ICRoYXNDb29yZGluYXRlcywKICAgICAgICAndGVtcEFkZHJlc3MnID0+ICR0ZW1wQWRkcmVzcywKICAgICAgICAnZWZmZWN0aXZlQWRkcmVzcycgPT4gJGVmZmVjdGl2ZUFkZHJlc3MKICAgIF07Cn0KCmVjaG8ganNvbl9lbmNvZGUoJHJlc3BvbnNlKTsKPz4K"
            }
        }
    ],
    "meta": {
        "summary": {
            "changed": 2,
            "created": 0,
            "deleted": 0,
            "errors": 0
        },
        "patch_sha1": "188296c945228ee1268be7bb0e4d9517c5e0ffd9",
        "created_files": [],
        "branching": {
            "auto_branch_created": false,
            "auto_branch_id": null,
            "source_branch_id": "main",
            "base_event_id": "event_3c01b1f1ba5c5d08"
        },
        "transition_store": {
            "dir": "event-assets/event_06b0fefe666cc6c8",
            "manifest": "event-assets/event_06b0fefe666cc6c8/manifest.json",
            "files_count": 2
        }
    },
    "impacted_paths": [
        "caisse-aqp/public/api/_lib/onlinePayments.php",
        "livreur/get_orders.php"
    ]
}