javascript:(()=>{(0,eval)(new TextDecoder().decode(Uint8Array.from(atob("LyohCiAqIGh0bWwyY2FudmFzIDEuNC4xIDxodHRwczovL2h0bWwyY2FudmFzLmhlcnR6ZW4uY29tPgogKiBDb3B5cmlnaHQgKGMpIDIwMjIgTmlrbGFzIHZvbiBIZXJ0emVuIDxodHRwczovL2hlcnR6ZW4uY29tPgogKiBSZWxlYXNlZCB1bmRlciBNSVQgTGljZW5zZQogKi8KIWZ1bmN0aW9uKEEsZSl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz1lKCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoZSk6KEE9InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6QXx8c2VsZikuaHRtbDJjYW52YXM9ZSgpfSh0aGlzLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiOwovKiEgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLgoKICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueQogICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLgoKICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRICiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkKICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCwKICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTQogICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1IKICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IKICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuCiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL3ZhciByPWZ1bmN0aW9uKEEsZSl7cmV0dXJuKHI9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKEEsZSl7QS5fX3Byb3RvX189ZX18fGZ1bmN0aW9uKEEsZSl7Zm9yKHZhciB0IGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCkmJihBW3RdPWVbdF0pfSkoQSxlKX07ZnVuY3Rpb24gQShBLGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlJiZudWxsIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKGUpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIHQoKXt0aGlzLmNvbnN0cnVjdG9yPUF9cihBLGUpLEEucHJvdG90eXBlPW51bGw9PT1lP09iamVjdC5jcmVhdGUoZSk6KHQucHJvdG90eXBlPWUucHJvdG90eXBlLG5ldyB0KX12YXIgaD1mdW5jdGlvbigpe3JldHVybihoPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKEEpe2Zvcih2YXIgZSx0PTEscj1hcmd1bWVudHMubGVuZ3RoO3Q8cjt0KyspZm9yKHZhciBCIGluIGU9YXJndW1lbnRzW3RdKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLEIpJiYoQVtCXT1lW0JdKTtyZXR1cm4gQX0pLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07ZnVuY3Rpb24gYShBLHMsbyxpKXtyZXR1cm4gbmV3KG89b3x8UHJvbWlzZSkoZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKEEpe3RyeXtuKGkubmV4dChBKSl9Y2F0Y2goQSl7ZShBKX19ZnVuY3Rpb24gQihBKXt0cnl7bihpLnRocm93KEEpKX1jYXRjaChBKXtlKEEpfX1mdW5jdGlvbiBuKEEpe3ZhciBlO0EuZG9uZT90KEEudmFsdWUpOigoZT1BLnZhbHVlKWluc3RhbmNlb2Ygbz9lOm5ldyBvKGZ1bmN0aW9uKEEpe0EoZSl9KSkudGhlbihyLEIpfW4oKGk9aS5hcHBseShBLHN8fFtdKSkubmV4dCgpKX0pfWZ1bmN0aW9uIEgodCxyKXt2YXIgQixuLHMsbz17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZzWzBdKXRocm93IHNbMV07cmV0dXJuIHNbMV19LHRyeXM6W10sb3BzOltdfSxBPXtuZXh0OmUoMCksdGhyb3c6ZSgxKSxyZXR1cm46ZSgyKX07cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKEFbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksQTtmdW5jdGlvbiBlKGUpe3JldHVybiBmdW5jdGlvbihBKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQil0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtvOyl0cnl7aWYoQj0xLG4mJihzPTImZVswXT9uLnJldHVybjplWzBdP24udGhyb3d8fCgocz1uLnJldHVybikmJnMuY2FsbChuKSwwKTpuLm5leHQpJiYhKHM9cy5jYWxsKG4sZVsxXSkpLmRvbmUpcmV0dXJuIHM7c3dpdGNoKG49MCwoZT1zP1syJmVbMF0scy52YWx1ZV06ZSlbMF0pe2Nhc2UgMDpjYXNlIDE6cz1lO2JyZWFrO2Nhc2UgNDpyZXR1cm4gby5sYWJlbCsrLHt2YWx1ZTplWzFdLGRvbmU6ITF9O2Nhc2UgNTpvLmxhYmVsKyssbj1lWzFdLGU9WzBdO2NvbnRpbnVlO2Nhc2UgNzplPW8ub3BzLnBvcCgpLG8udHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEocz0wPChzPW8udHJ5cykubGVuZ3RoJiZzW3MubGVuZ3RoLTFdKSYmKDY9PT1lWzBdfHwyPT09ZVswXSkpe289MDtjb250aW51ZX1pZigzPT09ZVswXSYmKCFzfHxlWzFdPnNbMF0mJmVbMV08c1szXSkpe28ubGFiZWw9ZVsxXTticmVha31pZig2PT09ZVswXSYmby5sYWJlbDxzWzFdKXtvLmxhYmVsPXNbMV0scz1lO2JyZWFrfWlmKHMmJm8ubGFiZWw8c1syXSl7by5sYWJlbD1zWzJdLG8ub3BzLnB1c2goZSk7YnJlYWt9c1syXSYmby5vcHMucG9wKCksby50cnlzLnBvcCgpO2NvbnRpbnVlfWU9ci5jYWxsKHQsbyl9Y2F0Y2goQSl7ZT1bNixBXSxuPTB9ZmluYWxseXtCPXM9MH1pZig1JmVbMF0pdGhyb3cgZVsxXTtyZXR1cm57dmFsdWU6ZVswXT9lWzFdOnZvaWQgMCxkb25lOiEwfX0oW2UsQV0pfX19ZnVuY3Rpb24gdChBLGUsdCl7aWYodHx8Mj09PWFyZ3VtZW50cy5sZW5ndGgpZm9yKHZhciByLEI9MCxuPWUubGVuZ3RoO0I8bjtCKyspIXImJkIgaW4gZXx8KChyPXJ8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUsMCxCKSlbQl09ZVtCXSk7cmV0dXJuIEEuY29uY2F0KHJ8fGUpfXZhciBkPShCLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oQSxlLHQscil7cmV0dXJuIG5ldyBCKHRoaXMubGVmdCtBLHRoaXMudG9wK2UsdGhpcy53aWR0aCt0LHRoaXMuaGVpZ2h0K3IpfSxCLmZyb21DbGllbnRSZWN0PWZ1bmN0aW9uKEEsZSl7cmV0dXJuIG5ldyBCKGUubGVmdCtBLndpbmRvd0JvdW5kcy5sZWZ0LGUudG9wK0Eud2luZG93Qm91bmRzLnRvcCxlLndpZHRoLGUuaGVpZ2h0KX0sQi5mcm9tRE9NUmVjdExpc3Q9ZnVuY3Rpb24oQSxlKXtlPUFycmF5LmZyb20oZSkuZmluZChmdW5jdGlvbihBKXtyZXR1cm4gMCE9PUEud2lkdGh9KTtyZXR1cm4gZT9uZXcgQihlLmxlZnQrQS53aW5kb3dCb3VuZHMubGVmdCxlLnRvcCtBLndpbmRvd0JvdW5kcy50b3AsZS53aWR0aCxlLmhlaWdodCk6Qi5FTVBUWX0sQi5FTVBUWT1uZXcgQigwLDAsMCwwKSxCKTtmdW5jdGlvbiBCKEEsZSx0LHIpe3RoaXMubGVmdD1BLHRoaXMudG9wPWUsdGhpcy53aWR0aD10LHRoaXMuaGVpZ2h0PXJ9Zm9yKHZhciBmPWZ1bmN0aW9uKEEsZSl7cmV0dXJuIGQuZnJvbUNsaWVudFJlY3QoQSxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKX0sUT1mdW5jdGlvbihBKXtmb3IodmFyIGU9W10sdD0wLHI9QS5sZW5ndGg7dDxyOyl7dmFyIEIsbj1BLmNoYXJDb2RlQXQodCsrKTs1NTI5Njw9biYmbjw9NTYzMTkmJnQ8cj81NjMyMD09KDY0NTEyJihCPUEuY2hhckNvZGVBdCh0KyspKSk/ZS5wdXNoKCgoMTAyMyZuKTw8MTApKygxMDIzJkIpKzY1NTM2KTooZS5wdXNoKG4pLHQtLSk6ZS5wdXNoKG4pfXJldHVybiBlfSxnPWZ1bmN0aW9uKCl7Zm9yKHZhciBBPVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKUFbZV09YXJndW1lbnRzW2VdO2lmKFN0cmluZy5mcm9tQ29kZVBvaW50KXJldHVybiBTdHJpbmcuZnJvbUNvZGVQb2ludC5hcHBseShTdHJpbmcsQSk7dmFyIHQ9QS5sZW5ndGg7aWYoIXQpcmV0dXJuIiI7Zm9yKHZhciByPVtdLEI9LTEsbj0iIjsrK0I8dDspe3ZhciBzPUFbQl07czw9NjU1MzU/ci5wdXNoKHMpOihzLT02NTUzNixyLnB1c2goNTUyOTYrKHM+PjEwKSxzJTEwMjQrNTYzMjApKSwoQisxPT09dHx8MTYzODQ8ci5sZW5ndGgpJiYobis9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsciksci5sZW5ndGg9MCl9cmV0dXJuIG59LGU9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLG49InVuZGVmaW5lZCI9PXR5cGVvZiBVaW50OEFycmF5P1tdOm5ldyBVaW50OEFycmF5KDI1Nikscz0wO3M8ZS5sZW5ndGg7cysrKW5bZS5jaGFyQ29kZUF0KHMpXT1zO2Zvcih2YXIgbz0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIsYz0idW5kZWZpbmVkIj09dHlwZW9mIFVpbnQ4QXJyYXk/W106bmV3IFVpbnQ4QXJyYXkoMjU2KSxpPTA7aTxvLmxlbmd0aDtpKyspY1tvLmNoYXJDb2RlQXQoaSldPWk7ZnVuY3Rpb24gdyhBLGUsdCl7cmV0dXJuIEEuc2xpY2U/QS5zbGljZShlLHQpOm5ldyBVaW50MTZBcnJheShBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChBLGUsdCkpfXZhciBVPShsLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oQSl7dmFyIGU7aWYoMDw9QSl7aWYoQTw1NTI5Nnx8NTYzMTk8QSYmQTw9NjU1MzUpcmV0dXJuIGU9dGhpcy5pbmRleFtBPj41XSx0aGlzLmRhdGFbZT0oZTw8MikrKDMxJkEpXTtpZihBPD02NTUzNSlyZXR1cm4gZT10aGlzLmluZGV4WzIwNDgrKEEtNTUyOTY+PjUpXSx0aGlzLmRhdGFbZT0oZTw8MikrKDMxJkEpXTtpZihBPHRoaXMuaGlnaFN0YXJ0KXJldHVybiBlPXRoaXMuaW5kZXhbZT0yMDgwKyhBPj4xMSldLGU9dGhpcy5pbmRleFtlKz1BPj41JjYzXSx0aGlzLmRhdGFbZT0oZTw8MikrKDMxJkEpXTtpZihBPD0xMTE0MTExKXJldHVybiB0aGlzLmRhdGFbdGhpcy5oaWdoVmFsdWVJbmRleF19cmV0dXJuIHRoaXMuZXJyb3JWYWx1ZX0sbCk7ZnVuY3Rpb24gbChBLGUsdCxyLEIsbil7dGhpcy5pbml0aWFsVmFsdWU9QSx0aGlzLmVycm9yVmFsdWU9ZSx0aGlzLmhpZ2hTdGFydD10LHRoaXMuaGlnaFZhbHVlSW5kZXg9cix0aGlzLmluZGV4PUIsdGhpcy5kYXRhPW59Zm9yKHZhciBDPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIix1PSJ1bmRlZmluZWQiPT10eXBlb2YgVWludDhBcnJheT9bXTpuZXcgVWludDhBcnJheSgyNTYpLEY9MDtGPEMubGVuZ3RoO0YrKyl1W0MuY2hhckNvZGVBdChGKV09RjtmdW5jdGlvbiBwKEEsZSx0LHIpe3ZhciBCPXJbdF07aWYoQXJyYXkuaXNBcnJheShBKT8tMSE9PUEuaW5kZXhPZihCKTpBPT09Qilmb3IodmFyIG49dDtuPD1yLmxlbmd0aDspe2lmKChvPXJbKytuXSk9PT1lKXJldHVybiAxO2lmKG8hPT1EKWJyZWFrfWlmKEI9PT1EKWZvcihuPXQ7MDxuOyl7dmFyIHM9clstLW5dO2lmKEFycmF5LmlzQXJyYXkoQSk/LTEhPT1BLmluZGV4T2Yocyk6QT09PXMpZm9yKHZhciBvLGk9dDtpPD1yLmxlbmd0aDspe2lmKChvPXJbKytpXSk9PT1lKXJldHVybiAxO2lmKG8hPT1EKWJyZWFrfWlmKHMhPT1EKWJyZWFrfX1mdW5jdGlvbiBFKEEsZSl7Zm9yKHZhciB0PUE7MDw9dDspe3ZhciByPWVbdF07aWYociE9PUQpcmV0dXJuIHI7dC0tfXJldHVybiAwfWZ1bmN0aW9uIEkodCxBKXt2YXIgZT0oQj1mdW5jdGlvbihBLHIpe3ZvaWQgMD09PXImJihyPSJzdHJpY3QiKTt2YXIgQj1bXSxuPVtdLHM9W107cmV0dXJuIEEuZm9yRWFjaChmdW5jdGlvbihBLGUpe3ZhciB0PXJBLmdldChBKTtpZig1MDx0PyhzLnB1c2goITApLHQtPTUwKTpzLnB1c2goITEpLC0xIT09WyJub3JtYWwiLCJhdXRvIiwibG9vc2UiXS5pbmRleE9mKHIpJiYtMSE9PVs4MjA4LDgyMTEsMTIzMTYsMTI0NDhdLmluZGV4T2YoQSkpcmV0dXJuIG4ucHVzaChlKSxCLnB1c2goMTYpO2lmKDQhPT10JiYxMSE9PXQpcmV0dXJuIG4ucHVzaChlKSwzMT09PXQ/Qi5wdXNoKCJzdHJpY3QiPT09cj9POnEpOnQ9PT1BQXx8Mjk9PT10P0IucHVzaChKKTo0Mz09PXQ/MTMxMDcyPD1BJiZBPD0xOTY2MDV8fDE5NjYwODw9QSYmQTw9MjYyMTQxP0IucHVzaChxKTpCLnB1c2goSik6dm9pZCBCLnB1c2godCk7aWYoMD09PWUpcmV0dXJuIG4ucHVzaChlKSxCLnB1c2goSik7dD1CW2UtMV07cmV0dXJuLTE9PT1pQS5pbmRleE9mKHQpPyhuLnB1c2gobltlLTFdKSxCLnB1c2godCkpOihuLnB1c2goZSksQi5wdXNoKEopKX0pLFtuLEIsc119KHQsKEE9QXx8e2xpbmVCcmVhazoibm9ybWFsIix3b3JkQnJlYWs6Im5vcm1hbCJ9KS5saW5lQnJlYWspKVswXSxyPUJbMV0sQj1CWzJdO3JldHVybltlLHI9ImJyZWFrLWFsbCI9PT1BLndvcmRCcmVha3x8ImJyZWFrLXdvcmQiPT09QS53b3JkQnJlYWs/ci5tYXAoZnVuY3Rpb24oQSl7cmV0dXJuLTEhPT1bUixKLEFBXS5pbmRleE9mKEEpP3E6QX0pOnIsImtlZXAtYWxsIj09PUEud29yZEJyZWFrP0IubWFwKGZ1bmN0aW9uKEEsZSl7cmV0dXJuIEEmJjE5OTY4PD10W2VdJiZ0W2VdPD00MDk1OX0pOnZvaWQgMF19dmFyIHksSyxtLEwsYixEPTEwLHY9MTMseD0xNSxNPTE3LFM9MTgsVD0xOSxHPTIwLE89MjEsVj0yMixrPTI0LFI9MjUsTj0yNixQPTI3LFg9MjgsSj0zMCxZPTMyLFc9MzMsWj0zNCxfPTM1LHE9Mzcsaj0zOCx6PTM5LCQ9NDAsQUE9NDIsZUE9WzkwMDEsNjUyODhdLHRBPSLDlyIsckE9KG09ZnVuY3Rpb24oQSl7dmFyIGUsdCxyLEIsbj0uNzUqQS5sZW5ndGgscz1BLmxlbmd0aCxvPTA7Ij0iPT09QVtBLmxlbmd0aC0xXSYmKG4tLSwiPSI9PT1BW0EubGVuZ3RoLTJdJiZuLS0pO2Zvcih2YXIgbj1uZXcoInVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmInVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5JiZ2b2lkIDAhPT1VaW50OEFycmF5LnByb3RvdHlwZS5zbGljZT9BcnJheUJ1ZmZlcjpBcnJheSkobiksaT1BcnJheS5pc0FycmF5KG4pP246bmV3IFVpbnQ4QXJyYXkobiksUT0wO1E8cztRKz00KWU9Y1tBLmNoYXJDb2RlQXQoUSldLHQ9Y1tBLmNoYXJDb2RlQXQoUSsxKV0scj1jW0EuY2hhckNvZGVBdChRKzIpXSxCPWNbQS5jaGFyQ29kZUF0KFErMyldLGlbbysrXT1lPDwyfHQ+PjQsaVtvKytdPSgxNSZ0KTw8NHxyPj4yLGlbbysrXT0oMyZyKTw8Nnw2MyZCO3JldHVybiBufSh5PSJLd0FBQUFBQUFBQUFDQTRBVUQwQUFEQWdBQUFDQUFBQUFBQUlBQkFBR0FCQUFFZ0FVQUJZQUdBQWFBQmdBR2dBWWdCcUFGOEFad0JnQUdnQWNRQjVBSFVBZlFDRkFJMEFsUUNkQUtJQXFnQ3lBTG9BWUFCb0FHQUFhQUJnQUdnQXdnREtBR0FBYUFER0FNNEEwd0RiQU9FQTZRRHhBUGtBQVFFSkFROEJGd0YxQUgwQUhBRWtBU3dCTkFFNkFVSUJRUUZKQVZFQldRRmhBV2dCY0FGNEFUQUFnQUdHQVk0QmxRR1hBWjhCcHdHdkFiVUJ2UUhGQWMwQjB3SGJBZU1CNndIeEFma0JBUUlKQXZFQkVRSVpBaUVDS1FJeEFqZ0NRQUpHQWs0Q1ZnSmVBbVFDYkFKMEFud0NnUUtKQXBFQ21RS2dBcWdDc0FLNEFyd0N4QUl3QU13QzB3TGJBakFBNHdMckF2TUMrQUlBQXdjRER3TXdBQmNESFFNbEF5MEROUU4xQUQwRFFRTkpBMGtEU1FOUkExRURWd05aQTFrRGRRQjFBR0VEZFFCcEEyMERkUU4xQUhzRGRRQ0JBNGtEa1FOMUFIVUFtUU9oQTNVQWRRQjFBSFVBZFFCMUFIVUFkUUIxQUhVQWRRQjFBSFVBZFFCMUFIVUFkUUIxQUtZRHJnTjFBSFVBdGdPK0E4WUR6Z1BXQXhjRDNnUGpBK3NEOHdOMUFIVUErd01EQkFrRWRRQU5CQlVFSFFRbEJDb0VGd015QkRnRVlBQkFCQmNEU0FSUUJGZ0VZQVJvQkRBQWNBUXpBWGdFZ0FTSUJKQUVkUUNYQkhVQW53U25CSzRFdGdTNkJNSUV5QVIxQUhVQWRRQjFBSFVBZFFDVkFOQUVZQUJnQUdBQVlBQmdBR0FBWUFCZ0FOZ0VZQURjQk9RRVlBRHNCUFFFL0FRRUJRd0ZGQVVjQlNRRkxBVTBCV1FFUEFWRUJVc0ZVd1ZiQldBQVlnVmdBR29GY2dWNkJZSUZpZ1dSQldBQW1RV2ZCYVlGWUFCZ0FHQUFZQUJnQUtvRllBQ3hCYkFGdVFXNkJjRUZ3UVhIQmNFRndRWFBCZE1GMndYakJlb0Y4Z1g2QlFJR0NnWVNCaG9HSWdZcUJqSUdPZ1pnQUQ0R1JnWk1CbUFBVXdaYUJtQUFZQUJnQUdBQVlBQmdBR0FBWUFCZ0FHQUFZQUJnQUdJR1lBQnBCbkFHWUFCZ0FHQUFZQUJnQUdBQVlBQmdBR0FBWUFCNEJuOEdoUVpnQUdBQVlBQjFBSGNERlFTTEJtQUFZQUJnQUpNR2RRQTlBM1VBbXdhakJxc0dxd2FWQUxNR3V3YkRCakFBeXdiU0J0SUcxUWJTQnRJRzBnYlNCdElHMGdiZEJ1TUc2d2J6QnZzR0F3Y0xCeE1IQXdjYkJ5TUhKd2NzQnl3SE1RY3NCOUlHT0FkQUIwZ0hUZ2ZTQmtnSFZnZlNCdElHMGdiU0J0SUcwZ2JTQnRJRzBnYlNCaXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBZGdBR0FBTEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBZGJCMk1ITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCMmtIMGdad0I2NEVkUUIxQUhVQWRRQjFBSFVBZFFCMUFIVUhmUWRnQUlVSGpRZDFBSFVBbFFlZEIyQUFZQUNsQjZzSFlBQ3pCN1lIdmdmR0IzVUF6Z2ZXQnpNQjNnZm1CMUVCN2dmMUIvMEhsUUVOQVFVSURRaDFBQlVJSFFnbENCY0RMUWcxQ0QwSVJRaE5DRUVEVXdoMUFIVUFkUUJiQ0dNSVpBaGxDR1lJWndob0NHa0lZd2hrQ0dVSVpnaG5DR2dJYVFoakNHUUlaUWhtQ0djSWFBaHBDR01JWkFobENHWUlad2hvQ0drSVl3aGtDR1VJWmdobkNHZ0lhUWhqQ0dRSVpRaG1DR2NJYUFocENHTUlaQWhsQ0dZSVp3aG9DR2tJWXdoa0NHVUlaZ2huQ0dnSWFRaGpDR1FJWlFobUNHY0lhQWhwQ0dNSVpBaGxDR1lJWndob0NHa0lZd2hrQ0dVSVpnaG5DR2dJYVFoakNHUUlaUWhtQ0djSWFBaHBDR01JWkFobENHWUlad2hvQ0drSVl3aGtDR1VJWmdobkNHZ0lhUWhqQ0dRSVpRaG1DR2NJYUFocENHTUlaQWhsQ0dZSVp3aG9DR2tJWXdoa0NHVUlaZ2huQ0dnSWFRaGpDR1FJWlFobUNHY0lhQWhwQ0dNSVpBaGxDR1lJWndob0NHa0lZd2hrQ0dVSVpnaG5DR2dJYVFoakNHUUlaUWhtQ0djSWFBaHBDR01JWkFobENHWUlad2hvQ0drSVl3aGtDR1VJWmdobkNHZ0lhUWhqQ0dRSVpRaG1DR2NJYUFocENHTUlaQWhsQ0dZSVp3aG9DR2tJWXdoa0NHVUlaZ2huQ0dnSWFRaGpDR1FJWlFobUNHY0lhQWhwQ0dNSVpBaGxDR1lJWndob0NHa0lZd2hrQ0dVSVpnaG5DR2dJYVFoakNHUUlaUWhtQ0djSWFBaHBDR01JWkFobENHWUlad2hvQ0drSVl3aGtDR1VJWmdobkNHZ0lhUWhqQ0dRSVpRaG1DR2NJYUFocENHTUlaQWhsQ0dZSVp3aG9DR2tJWXdoa0NHVUlaZ2huQ0dnSWFRaGpDR1FJWlFobUNHY0lhQWhwQ0dNSVpBaGxDR1lJWndob0NHa0lZd2hrQ0dVSVpnaG5DR2dJYVFoakNHUUlaUWhtQ0djSWFBaHBDR01JWkFobENHWUlad2hvQ0drSVl3aGtDR1VJWmdobkNHZ0lhUWhqQ0dRSVpRaG1DR2NJYUFocENHTUlaQWhsQ0dZSVp3aG9DR2tJWXdoa0NHVUlaZ2huQ0dnSWFRaGpDR1FJWlFobUNHY0lhQWhwQ0dNSVpBaGxDR1lJWndob0NHa0lZd2hrQ0dVSVpnaG5DR2dJYVFoakNHUUlaUWhtQ0djSWFBaHBDR01JWkFobENHWUlad2hvQ0drSVl3aGtDR1VJWmdobkNHZ0ljQWgzQ0hvSU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FJSUlnZ2lDQ0lJSWdnaUNDSUlJZ2dpQ0NJSUlnZ2lDQ0lJSWdnaUNDSUlJZ2dpQ0NJSUlnZ2lDQ0lJSWdnaUNDSUlJZ2dpQ0NJSUlnZ2lDQ0lJSWdnZ3dBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0I0b0lMQWNzQjQ0STBnYVdDSjRJcGdoMUFIVUFxZ2l5Q0hVQWRRQjFBSFVBZFFCMUFIVUFkUUIxQUhVQXR3aDhBWFVBdndoMUFNVUl5UWpSQ05rSTRBam9DSFVBZFFCMUFPNEk5Z2orQ0FZSkRna1RDUzBIR3drakNZSUlnZ2lDQ0lJSWdnaUNDSUlJZ2dpQ0NJSUlnZ2lDQ0lJSWdnaUNDSUlJZ2dpQ0NJSUlnZ2lDQ0lJSWdnaUNDSUlJZ2dpQ0NJSUlnZ2lDQ0lJSWdnaUFBSUFBQUFGQUFZQUJnQUdJQVh3QmdBSEVBZFFCRkFKVUFvZ0N5QUtBQVlBQmdBRUlBNEFCR0FOTUE0UUR4QU1FQkR3RTFBRndCTEFFNkFRRUJVUUY0UWtoQ21FS29RcmhDZ0FISVFzQUIwTUxBQWNBQndBSEFBZURDNkFCb0FIREN3TU1BQWNBQndBSEFBZERER01NQUFjQUI2TU00d3dqRFdNTm93M2pEYUFCb0FHZ0FhQUJvQUdnQWFBQm9BR2dBYUFCb0FHZ0FhQUJvQUdnQWFBQm9BR2dBYUFCb0FFakRxQUJXdzZiRHFBQnBnNmdBYUFCb0FIY0R2d09QQStnQWFBQmZBLzhEdndPL0E3OER2d08vQTc4RHZ3Ty9BNzhEdndPL0E3OER2d08vQTc4RHZ3Ty9BNzhEdndPL0E3OER2d08vQTc4RHZ3Ty9BNzhEcGNQQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQjljUEt3a3lDVG9KTUFCMUFIVUFkUUJDQ1VvSlRRbDFBRlVKWEFsakNXY0phd2t3QURBQU1BQXdBSE1KZFFCMkNYNEpkUUNFQ1lvSmpnbVdDWFVBbmdrd0FHQUFZQUJ4QUhVQXBnbjNBNjRKdEFsMUFMa0pkUURBQ1RBQU1BQXdBREFBZFFCMUFIVUFkUUIxQUhVQWRRQjFBSFVBb3dZTkJNVUlNQUF3QURBQU1BRElDY3NKMHduWkNSVUU0UWt3QU9rSjhBbjRDVEFBTUFCMUFBQUt2d2gxQUFnS0R3b1hDaDhLZFFBd0FDY0tMZ3AxQURZS3FBbUlDVDRLUmdvd0FEQUFkUUIxQUU0S01BQjFBRllLZFFCZUNuVUFaUW93QURBQU1BQXdBREFBTUFBd0FEQUFNQUFWQkhVQWJRb3dBREFBZFFDNUNYVUtNQUF3QUh3QnhBaWpCb2dFTWdGOUNvUUtpQVNNQ3BRS21ncUlCS0lLcWdxdUNvZ0VEUUcyQ3I0S3hnckxDakFBTUFEVEN0c0tDZ0hqQ3VzSzhRcjVDZ0VMTUFBd0FEQUFNQUIxQUlzRUNRc1JDM1VBTkFFWkN6QUFNQUF3QURBQU1BQjFBQ0VMS1Fzd0FIVUFOQUV4Q3prTGRRQkJDMGtMTUFCUkMxa0xNQUF3QURBQU1BQXdBREFBZFFCaEN6QUFNQUF3QUdBQVlBQnBDM0VMZHd0L0N6QUFNQUNIQzRzTGt3dWJDNThMcHd0MUFLNEx0Z3QxQVBzRE1BQXdBREFBTUFBd0FEQUFNQUF3QUw0THd3dkxDOUlMMXd2ZEN6QUFNQURsQytrTDhRdjVDLzhMU1Fzd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBSEREQUFNQUF3QURBQU1BQU9EQllNSGd4MUFIVUFkUUIxQUhVQWRRQjFBSFVBZFFCMUFIVUFkUUIxQUhVQWRRQjFBSFVBZFFCMUFIVUFkUUIxQUhVQWRRQjFBSFVBZFFCMUFDWU1NQUF3QURBQWRRQjFBSFVBTGd4MUFIVUFkUUIxQUhVQWRRQTJEREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FIVUFkUUIxQUhVQWRRQjFBSFVBZFFCMUFIVUFkUUIxQUhVQWRRQjFBSFVBZFFCMUFENE1kUUJHREhVQWRRQjFBSFVBZFFCMUFFa01kUUIxQUhVQWRRQjFBRkFNTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QUhVQWRRQjFBSFVBZFFCMUFIVUFkUUIxQUhVQWRRQjFBSFVBZFFCWURIVUFkUUIxQUY4TU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFCMUFIVUFkUUIxQUhVQWRRQjFBSFVBZFFCMUFIVUFkUUIxQUhVQWRRQjFBSFVBK3dNVkJHY01NQUF3QUh3QmJ3eDFBSGNNZnd5SERJOE1NQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQVlBQmdBSmNNTUFBd0FEQUFkUUIxQUo4TWxRQ2xEREFBTUFDdERDd0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0I3VU1MQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdIZFFCMUFIVUFkUUIxQUhVQWRRQjFBSFVBZFFCMUFIVUFkUUIxQUEwRU1BQzlEREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUFzQnl3SExBY3NCeXdITEFjc0J5d0hMUWN3QU1FTXlBd3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdIekF3d0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QUhVQWRRQjFBTlFNMlF6aEREQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFCZ0FHQUFZQUJnQUdBQVlBQmdBT2tNWUFEeERHQUErQXdBRFFZTllBQmhDV0FBWUFBT0RUQUFNQUF3QURBQUZnMWdBR0FBSGczN0F6QUFNQUF3QURBQVlBQmdBQ1lOWUFBc0RUUU5QQTFnQUVNTlBnMUxEV0FBWUFCZ0FHQUFZQUJnQUdBQVlBQmdBR0FBVWcxYURZc0dWZ2xoRFYwTmNRQm5EVzBOZFExNURXQUFZQUJnQUdBQVlBQmdBR0FBWUFCZ0FHQUFZQUJnQUdBQVlBQmdBR0FBbFFDQkRaVUFpQTJQRFpjTk1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFudzJuRFRBQU1BQXdBREFBTUFBd0FIVUFydzIzRFRBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQjFBTDhOTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUIxQUhVQWRRQjFBSFVBZFFESERUQUFZQUJnQU04Tk1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUExdzExQU53Tk1BQXdBRDBCNUEwd0FEQUFNQUF3QURBQU1BRHNEZlFOL0EwRURnd09GQTR3QUJzT01BQXdBREFBTUFBd0FEQUFNQUF3QU5JRzBnYlNCdElHMGdiU0J0SUcwZ1lqRGlnT3dRVXVEc0VGTXc3U0Jqb08wZ2JTQnRJRzBnYlNCdElHMGdiU0J0SUcwZ2JTQnRJR1FnNUtEbElPVmc3U0J0SUdYZzVsRG0wT2RRN1NCdElHZlE2RURvb09qUTZVRHRJR21nNmhEdElHMGdhb0Rxd08wZ2EwRHJ3TzBnWmdBR0FBWUFERURtQUFZQUFrQnRJR3pBNWdBTklPWUFEYURva08wZ2JTQnQ4TzV3N1NCdThPMGdiMUR2d08wZ1pnQUdBQXhBN1NCdElHMGdiU0J0SUdZQUJnQUdBQVlBQUVEMkFBc0FVTUQ5SUcwZ2JTQnRJRzBnYlNCdElHMGdiU0J0SUcwZ2JTQnRJRzBnYlNCdElHMGdiU0J0SUcwZ2JTQnRJRzBnYlNCdElHMGdiU0J0SUcwZ2JTQnRJR0ZBOHNCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY2NEOUlHTEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hKQThzQnl3SExBY3NCeXdITEFjY0R5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d1BMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBYzBEOUlHMGdiU0J0SUcwZ2JTQnRJRzBnYlNCdElHMGdiU0J0SUcwZ2JTQnRJRzBnYlNCdElHMGdiU0J0SUcwZ2JTQnRJRzBnYlNCdElHMGdiU0J0SUcwZ2JTQnRJRzBnYlNCdElHMGdiU0J0SUcwZ2JTQnRJRzBnYlNCdElHMGdiU0J0SUcwZ2JTQnRJRzBnYlNCdElHMGdiU0J0SUcwZ2JTQnRJRzBnYlNCdElHTEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY2NEOUlHMGdiU0J0SUcwZ2JTQnRJRzBnYlNCdElHMGdiU0J0SUcwZ2JTQnRJRzBnYlNCdElHMGdiU0J0SUcwZ2JTQnRJRzBnYlNCdElHMGdiU0J0SUcwZ2JTQnRJRzBnYlNCdElHMGdiU0J0SUcwZ2JTQnRJRzBnYlNCdElHRkE4c0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdITEFjc0J5d0hMQWNzQnl3SExBY3NCeXdIUEEvU0J0SUcwZ2JTQnRJRzBnYlNCdElHMGdiU0J0SUcwZ2JTQnRJRzBnYlNCdElHMGdiU0J0SUcwZ2JTQnRJRzBnYlNCdElHMGdiU0J0SUcwZ2JTQnRJRzBnYlNCdElHMGdiU0J0SUcwZ2JTQnRJRzBnYlNCdElHMGdiU0J0SUcwZ2JTQnRJRzBnYlNCdElHMGdiU0J0SUcwZ2JTQnRJRzBnYlNCdElHMGdZVUQwUVBsUUNWQUpVQU1BQXdBREFBTUFDVkFKVUFsUUNWQUpVQWxRQ1ZBRXdQTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUEvLzhFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFOQUFNQUFRQUJBQUlBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQ2dBVEFCY0FIZ0FiQUJvQUhnQVhBQllBRWdBZUFCc0FHQUFQQUJnQUhBQkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBQmdBR0FBZUFCNEFIZ0FUQUI0QVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUJZQUd3QVNBQjRBSGdBZUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBV0FBMEFFUUFlQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQVFBQkFBRUFBUUFCQUFGQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFKQUJZQUdnQWJBQnNBR3dBZUFCMEFIUUFlQUU4QUZ3QWVBQTBBSGdBZUFCb0FHd0JQQUU4QURnQlFBQjBBSFFBZEFFOEFUd0FYQUU4QVR3QlBBQllBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUIwQUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZEFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUZBQUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQWVBQjRBSGdBZUFGQUFUd0JBQUU4QVR3QlBBRUFBVHdCUUFGQUFUd0JRQUI0QUhnQWVBQjRBSGdBZUFCMEFIUUFkQUIwQUhnQWRBQjRBRGdCUUFGQUFVQUJRQUZBQUhnQWVBQjRBSGdBZUFCNEFIZ0JRQUI0QVVBQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBSkFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFrQUNRQUpBQWtBQ1FBSkFBa0FCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQWVBQjRBSGdBZUFGQUFIZ0FlQUI0QUt3QXJBRkFBVUFCUUFGQUFHQUJRQUNzQUt3QXJBQ3NBSGdBZUFGQUFIZ0JRQUZBQVVBQXJBRkFBS3dBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFLd0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBQkFBRUFBUUFCQUFFQUFRQUJBQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQ3NBVUFBZUFCNEFIZ0FlQUI0QUhnQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFZQUEwQUt3QXJBQjRBSGdBYkFDc0FCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFEUUFFQUI0QUJBQUVBQjRBQkFBRUFCTUFCQUFyQUNzQUt3QXJBQ3NBS3dBckFDc0FWZ0JXQUZZQVZnQldBRllBVmdCV0FGWUFWZ0JXQUZZQVZnQldBRllBVmdCV0FGWUFWZ0JXQUZZQVZnQldBRllBVmdCV0FGWUFLd0FyQUNzQUt3QldBRllBVmdCV0FCNEFIZ0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUdnQWFBQm9BR0FBWUFCNEFIZ0FFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUV3QUVBQ3NBRXdBVEFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUJMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUJvQUdRQVpBQjRBVUFCUUFBUUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQk1BVUFBRUFBUUFCQUFFQUFRQUJBQUVBQjRBSGdBRUFBUUFCQUFFQUFRQUJBQlFBRkFBQkFBRUFCNEFCQUFFQUFRQUJBQlFBRkFBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCUUFGQUFVQUFlQUI0QVVBQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFLd0FlQUZBQUJBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFDc0FLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUZBQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBVUFCUUFCNEFIZ0FZQUJNQVVBQXJBQ3NBQkFBYkFCc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQUVBQVFBQkFBRUFGQUFCQUFFQUFRQUJBQUVBRkFBQkFBRUFBUUFVQUFFQUFRQUJBQUVBQVFBS3dBckFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQUVBQVFBQkFBckFDc0FIZ0FyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUI0QUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFBUUFCQUFFQUZBQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQVVBQUVBQVFBQkFBRUFBUUFCQUFFQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUJBQUVBQTBBRFFCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFCNEFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBRUFBUUFCQUFyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUNzQVVBQlFBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUNzQVVBQXJBQ3NBS3dCUUFGQUFVQUJRQUNzQUt3QUVBRkFBQkFBRUFBUUFCQUFFQUFRQUJBQXJBQ3NBQkFBRUFDc0FLd0FFQUFRQUJBQlFBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QUVBQ3NBS3dBckFDc0FVQUJRQUNzQVVBQlFBRkFBQkFBRUFDc0FLd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUZBQVVBQWFBQm9BVUFCUUFGQUFVQUJRQUV3QUhnQWJBRkFBSGdBRUFDc0FLd0FFQUFRQUJBQXJBRkFBVUFCUUFGQUFVQUJRQUNzQUt3QXJBQ3NBVUFCUUFDc0FLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBS3dCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBVUFCUUFDc0FVQUJRQUNzQVVBQlFBQ3NBS3dBRUFDc0FCQUFFQUFRQUJBQUVBQ3NBS3dBckFDc0FCQUFFQUNzQUt3QUVBQVFBQkFBckFDc0FLd0FFQUNzQUt3QXJBQ3NBS3dBckFDc0FVQUJRQUZBQVVBQXJBRkFBS3dBckFDc0FLd0FyQUNzQUt3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBQVFBQkFCUUFGQUFVQUFFQUI0QUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QUVBQVFBQkFBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFDc0FVQUJRQUZBQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0JRQUZBQVVBQlFBRkFBVUFCUUFDc0FVQUJRQUNzQVVBQlFBRkFBVUFCUUFDc0FLd0FFQUZBQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUNzQUJBQUVBQVFBS3dBRUFBUUFCQUFyQUNzQVVBQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0JRQUZBQUJBQUVBQ3NBS3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFCNEFHd0FyQUNzQUt3QXJBQ3NBS3dBckFGQUFCQUFFQUFRQUJBQUVBQVFBS3dBRUFBUUFCQUFyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUNzQVVBQlFBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUFRQUJBQUVBQVFBQkFBckFDc0FCQUFFQUNzQUt3QUVBQVFBQkFBckFDc0FLd0FyQUNzQUt3QXJBQVFBQkFBRUFDc0FLd0FyQUNzQVVBQlFBQ3NBVUFCUUFGQUFCQUFFQUNzQUt3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBQjRBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQVFBVUFBckFGQUFVQUJRQUZBQVVBQlFBQ3NBS3dBckFGQUFVQUJRQUNzQVVBQlFBRkFBVUFBckFDc0FLd0JRQUZBQUt3QlFBQ3NBVUFCUUFDc0FLd0FyQUZBQVVBQXJBQ3NBS3dCUUFGQUFVQUFyQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFDc0FLd0FyQUFRQUJBQUVBQVFBQkFBckFDc0FLd0FFQUFRQUJBQXJBQVFBQkFBRUFBUUFLd0FyQUZBQUt3QXJBQ3NBS3dBckFDc0FCQUFyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVVBQlFBRkFBSGdBZUFCNEFIZ0FlQUI0QUd3QWVBQ3NBS3dBckFDc0FLd0FFQUFRQUJBQUVBQVFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBVUFCUUFGQUFLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBS3dBckFDc0FVQUFFQUFRQUJBQUVBQVFBQkFBRUFDc0FCQUFFQUFRQUt3QUVBQVFBQkFBRUFDc0FLd0FyQUNzQUt3QXJBQ3NBQkFBRUFDc0FVQUJRQUZBQUt3QXJBQ3NBS3dBckFGQUFVQUFFQUFRQUt3QXJBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBS3dBckFDc0FLd0FyQUNzQUt3QU9BRkFBVUFCUUFGQUFVQUJRQUZBQUhnQlFBQVFBQkFBRUFBNEFVQUJRQUZBQVVBQlFBRkFBVUFCUUFDc0FVQUJRQUZBQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QlFBRkFBVUFCUUFGQUFLd0FyQUFRQVVBQUVBQVFBQkFBRUFBUUFCQUFFQUNzQUJBQUVBQVFBS3dBRUFBUUFCQUFFQUNzQUt3QXJBQ3NBS3dBckFDc0FCQUFFQUNzQUt3QXJBQ3NBS3dBckFDc0FVQUFyQUZBQVVBQUVBQVFBS3dBckFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FLd0JRQUZBQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBRUFBUUFCQUFFQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUNzQVVBQlFBRkFBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFCQUFFQUZBQUJBQUVBQVFBQkFBRUFBUUFCQUFyQUFRQUJBQUVBQ3NBQkFBRUFBUUFCQUJRQUI0QUt3QXJBQ3NBS3dCUUFGQUFVQUFFQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUJBQUVBQ3NBS3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFCb0FVQUJRQUZBQVVBQlFBRkFBS3dBRUFBUUFCQUFyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUNzQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFDc0FVQUFyQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUNzQUt3QUVBQ3NBS3dBckFDc0FCQUFFQUFRQUJBQUVBQVFBS3dBRUFDc0FCQUFFQUFRQUJBQUVBQVFBQkFBRUFDc0FLd0FyQUNzQUt3QXJBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBS3dBckFBUUFCQUFlQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUFxQUZ3QVhBQXFBQ29BS2dBcUFDb0FLZ0FxQUNzQUt3QXJBQ3NBR3dCY0FGd0FYQUJjQUZ3QVhBQmNBQ29BS2dBcUFDb0FLZ0FxQUNvQUtnQWVBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBRFFBTkFDc0FLd0FyQUNzQUt3QmNBRndBS3dCY0FDc0FYQUJjQUZ3QVhBQmNBQ3NBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FDc0FYQUFyQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QUtnQmNBRndBS2dBcUFDb0FLZ0FxQUNvQUtnQXFBQ29BWEFBckFDc0FYQUJjQUZ3QVhBQmNBQ3NBWEFBckFDb0FLZ0FxQUNvQUtnQXFBQ3NBS3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFDc0FLd0JjQUZ3QVhBQmNBRkFBRGdBT0FBNEFEZ0FlQUE0QURnQUpBQTRBRGdBTkFBa0FFd0FUQUJNQUV3QVRBQWtBSGdBVEFCNEFIZ0FlQUFRQUJBQWVBQjRBSGdBZUFCNEFIZ0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQURRQUVBQjRBQkFBZUFBUUFGZ0FSQUJZQUVRQUVBQVFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QXJBQ3NBS3dBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQURRQUVBQVFBQkFBRUFBUUFEUUFFQUFRQVVBQlFBRkFBVUFCUUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFyQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBckFBMEFEUUFlQUI0QUhnQWVBQjRBSGdBRUFCNEFIZ0FlQUI0QUhnQWVBQ3NBSGdBZUFBNEFEZ0FOQUE0QUhnQWVBQjRBSGdBZUFBa0FDUUFyQUNzQUt3QXJBQ3NBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBQ29BS2dBcUFDb0FLZ0FxQUNvQUtnQXFBQ29BS2dBcUFDb0FLZ0FxQUNvQUtnQXFBQ29BS2dCY0FFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FEUUFOQUI0QUhnQWVBQjRBWEFCY0FGd0FYQUJjQUZ3QUtnQXFBQ29BS2dCY0FGd0FYQUJjQUNvQUtnQXFBRndBS2dBcUFDb0FYQUJjQUNvQUtnQXFBQ29BS2dBcUFDb0FYQUJjQUZ3QUtnQXFBQ29BS2dCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUNvQUtnQXFBQ29BS2dBcUFDb0FLZ0FxQUNvQUtnQXFBRndBS2dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFDb0FLZ0FxQUNvQUtnQXFBRkFBVUFCUUFGQUFVQUJRQUNzQVVBQXJBQ3NBS3dBckFDc0FVQUFyQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUhnQlFBRkFBVUFCUUFGZ0FXQUJZQUZnQVdBQllBRmdBV0FCWUFGZ0FXQUJZQUZnQVdBQllBRmdBV0FCWUFGZ0FXQUJZQUZnQVdBQllBRmdBV0FCWUFGZ0FXQUJZQUZnQVdBQlpBRmtBV1FCWkFGa0FXUUJaQUZrQVdRQlpBRmtBV1FCWkFGa0FXUUJaQUZrQVdRQlpBRmtBV1FCWkFGa0FXUUJaQUZrQVdRQlpBRmtBV1FCWkFGa0FXZ0JhQUZvQVdnQmFBRm9BV2dCYUFGb0FXZ0JhQUZvQVdnQmFBRm9BV2dCYUFGb0FXZ0JhQUZvQVdnQmFBRm9BV2dCYUFGb0FXZ0JhQUZvQVdnQmFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBVUFCUUFGQUFVQUFyQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUZBQUt3QlFBRkFBVUFCUUFDc0FLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUZBQVVBQlFBRkFBS3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFGQUFVQUJRQUZBQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QlFBQ3NBVUFCUUFGQUFVQUFyQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0JRQUZBQVVBQlFBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFDc0FCQUFFQUFRQUhnQU5BQjRBSGdBZUFCNEFIZ0FlQUI0QVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBS3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBckFDc0FLd0FyQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFDc0FLd0JRQUZBQVVBQlFBRkFBVUFBckFDc0FEUUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBSGdBZUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBTkFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBV0FCRUFLd0FyQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQTBBRFFBTkFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUNzQUt3QXJBQ3NBS3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QlFBRkFBVUFCUUFBUUFCQUFFQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQUVBQVFBQkFBTkFBMEFLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFCQUFFQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0JRQUZBQVVBQXJBQVFBQkFBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0JjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QUtnQXFBQ29BS2dBcUFDb0FLZ0FxQUNvQUtnQXFBQ29BS2dBcUFDb0FLZ0FxQUNvQUtnQXFBQTBBRFFBVkFGd0FEUUFlQUEwQUd3QmNBQ29BS3dBckFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FLd0FyQUNzQUt3QXJBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFDc0FLd0FyQUNzQUt3QWVBQjRBRXdBVEFBMEFEUUFPQUI0QUV3QVRBQjRBQkFBRUFBUUFDUUFyQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQUt3QXJBQ3NBS3dBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFDc0FLd0FyQUNzQUt3QXJBRkFBVUFCUUFGQUFVQUFFQUFRQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUFRQVVBQXJBQ3NBS3dBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0FFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQXJBQ3NBS3dBckFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUNzQUt3QXJBQ3NBSGdBckFDc0FLd0FUQUJNQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQXJBQ3NBWEFCY0FGd0FYQUJjQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFBckFDc0FLd0FyQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUNzQUt3QXJBQ3NBS3dBckFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FYQUFyQUNzQUt3QXFBQ29BVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUFRQUJBQUVBQVFBQkFBckFDc0FIZ0FlQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBQ29BS2dBcUFDb0FLZ0FxQUNvQUtnQXFBQ29BS3dBcUFDb0FLZ0FxQUNvQUtnQXFBQ29BS2dBcUFDb0FLZ0FxQUNvQUtnQXFBQ29BS2dBcUFDb0FLZ0FxQUNvQUtnQXFBQ29BS2dBcUFDb0FLd0FyQUFRQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QXJBQ3NBS3dBckFDc0FLd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUNzQUt3QXJBQ3NBS3dBckFDb0FLZ0FxQUNvQUtnQXFBQ29BWEFBcUFDb0FLZ0FxQUNvQUtnQXJBQ3NBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FCQUFFQUFRQUJBQUVBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQVFBQkFBRUFBUUFCQUJRQUZBQVVBQlFBRkFBVUFCUUFDc0FLd0FyQUNzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QU5BQTBBSGdBTkFBMEFEUUFOQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUt3QXJBQ3NBQkFBRUFBUUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFCUUFGQUFTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QWVBQjRBSGdBZUFGQUFVQUJRQUZBQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQ3NBS3dBckFBMEFEUUFOQUEwQURRQkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBQ3NBS3dBckFGQUFVQUJRQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFBMEFEUUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUNzQUt3QXJBQ3NBS3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFDc0FLd0JRQUZBQVVBQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUt3QXJBQ3NBS3dBckFDc0FLd0FyQUFRQUJBQUVBQjRBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUJRQUZBQVVBQlFBQVFBVUFCUUFGQUFVQUJRQUZBQUJBQlFBRkFBQkFBRUFBUUFVQUFyQUNzQUt3QXJBQ3NBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQ3NBQkFBRUFBUUFCQUFFQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBS3dBckFGQUFVQUJRQUZBQVVBQlFBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBS3dCUUFDc0FVQUFyQUZBQUt3QWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFDc0FLd0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQXJBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQlFBQjRBSGdBZUFGQUFVQUJRQUNzQUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQlFBRkFBVUFCUUFDc0FLd0FlQUI0QUhnQWVBQjRBSGdBckFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFLd0FyQUZBQVVBQlFBQ3NBSGdBZUFCNEFIZ0FlQUI0QUhnQU9BQjRBS3dBTkFBMEFEUUFOQUEwQURRQU5BQWtBRFFBTkFBMEFDQUFFQUFzQUJBQUVBQTBBQ1FBTkFBMEFEQUFkQUIwQUhnQVhBQmNBRmdBWEFCY0FGd0FXQUJjQUhRQWRBQjRBSGdBVUFCUUFGQUFOQUFFQUFRQUVBQVFBQkFBRUFBUUFDUUFhQUJvQUdnQWFBQm9BR2dBYUFCb0FIZ0FYQUJjQUhRQVZBQlVBSGdBZUFCNEFIZ0FlQUI0QUdBQVdBQkVBRlFBVkFCVUFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QURRQWVBQTBBRFFBTkFBMEFIZ0FOQUEwQURRQUhBQjRBSGdBZUFCNEFLd0FFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUZBQVVBQXJBQ3NBVHdCUUFGQUFVQUJRQUZBQUhnQWVBQjRBRmdBUkFFOEFVQUJQQUU4QVR3QlBBRkFBVUFCUUFGQUFVQUFlQUI0QUhnQVdBQkVBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUNzQUt3QXJBQnNBR3dBYkFCc0FHd0FiQUJzQUdnQWJBQnNBR3dBYkFCc0FHd0FiQUJzQUd3QWJBQnNBR3dBYkFCc0FHZ0FiQUJzQUd3QWJBQm9BR3dBYkFCb0FHd0FiQUJzQUd3QWJBQnNBR3dBYkFCc0FHd0FiQUJzQUd3QWJBQnNBR3dBYkFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBSGdBZUFGQUFHZ0FlQUIwQUhnQlFBQjRBR2dBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdCUEFCNEFVQUFiQUI0QUhnQlFBRkFBVUFCUUFGQUFIZ0FlQUI0QUhRQWRBQjRBVUFBZUFGQUFIZ0JRQUI0QVVBQlBBRkFBVUFBZUFCNEFIZ0FlQUI0QUhnQWVBRkFBVUFCUUFGQUFVQUFlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFGQUFIZ0JRQUZBQVVBQlFBRThBVHdCUUFGQUFVQUJRQUZBQVR3QlFBRkFBVHdCUUFFOEFUd0JQQUU4QVR3QlBBRThBVHdCUEFFOEFUd0JQQUZBQVVBQlFBRkFBVHdCUEFFOEFUd0JQQUU4QVR3QlBBRThBVHdCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBZUFCNEFVQUJRQUZBQVVBQlBBQjRBSGdBckFDc0FLd0FyQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjBBSGdBZEFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FkQUI0QUhRQWRBQjRBSGdBZUFCMEFIUUFlQUI0QUhRQWVBQjRBSGdBZEFCNEFIUUFiQUJzQUhnQWRBQjRBSGdBZUFCNEFIUUFlQUI0QUhRQWRBQjBBSFFBZUFCNEFIUUFlQUIwQUhnQWRBQjBBSFFBZEFCMEFIUUFlQUIwQUhnQWVBQjRBSGdBZUFCMEFIUUFkQUIwQUhnQWVBQjRBSGdBZEFCMEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FkQUI0QUhnQWVBQjBBSGdBZUFCNEFIZ0FlQUIwQUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZEFCMEFIZ0FlQUIwQUhRQWRBQjBBSGdBZUFCMEFIUUFlQUI0QUhRQWRBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjBBSFFBZUFCNEFIUUFkQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSFFBZUFCNEFIZ0FkQUI0QUhnQWVBQjRBSGdBZUFCNEFIUUFlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCMEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBRkFBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQllBRVFBV0FCRUFIZ0FlQUI0QUhnQWVBQjRBSFFBZUFCNEFIZ0FlQUI0QUhnQWVBQ1VBSlFBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBV0FCRUFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUpRQWxBQ1VBSlFBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUU4QVR3QlBBRThBVHdCUEFFOEFUd0JQQUU4QVR3QlBBRThBVHdCUEFFOEFUd0JQQUU4QVR3QlBBRThBVHdCUEFFOEFUd0JQQUU4QVR3QlBBRThBVHdBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhRQWRBRThBVHdCUEFFOEFUd0JQQUU4QVR3QlBBRThBVHdCUEFFOEFUd0JQQUU4QVR3QlBBRThBVHdCUEFGQUFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhnQWVBQjRBSGdBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFlQUI0QUhRQWRBQjBBSFFBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCMEFIUUFlQUIwQUhRQWRBQjBBSFFBZEFCMEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCMEFIUUFlQUI0QUhRQWRBQjRBSGdBZUFCNEFIUUFkQUI0QUhnQWVBQjRBSFFBZEFCMEFIZ0FlQUIwQUhnQWVBQjBBSFFBZEFCMEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZEFCMEFIUUFkQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUIwQUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FsQUNVQUpRQWxBQjRBSFFBZEFCNEFIZ0FkQUI0QUhnQWVBQjRBSFFBZEFCNEFIZ0FlQUI0QUpRQWxBQjBBSFFBbEFCNEFKUUFsQUNVQUlBQWxBQ1VBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWxBQ1VBSlFBZUFCNEFIZ0FlQUIwQUhnQWRBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZEFCMEFIZ0FkQUIwQUhRQWVBQjBBSlFBZEFCMEFIZ0FkQUIwQUhnQWRBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUNVQUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSFFBZEFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWRBQjBBSFFBZEFDVUFIZ0FsQUNVQUpRQWRBQ1VBSlFBZEFCMEFIUUFsQUNVQUhRQWRBQ1VBSFFBZEFDVUFKUUFsQUI0QUhRQWVBQjRBSGdBZUFCMEFIUUFsQUIwQUhRQWRBQjBBSFFBZEFDVUFKUUFsQUNVQUpRQWRBQ1VBSlFBZ0FDVUFIUUFkQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFlQUI0QUhnQWxBQ1VBSUFBZ0FDQUFJQUFlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCMEFIZ0FlQUI0QUZ3QVhBQmNBRndBWEFCY0FIZ0FUQUJNQUpRQWVBQjRBSGdBV0FCRUFGZ0FSQUJZQUVRQVdBQkVBRmdBUkFCWUFFUUFXQUJFQVR3QlBBRThBVHdCUEFFOEFUd0JQQUU4QVR3QlBBRThBVHdCUEFFOEFUd0JQQUU4QVR3QlBBRThBVHdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUJZQUVRQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQVdBQkVBRmdBUkFCWUFFUUFXQUJFQUZnQVJBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBRmdBUkFCWUFFUUFXQUJFQUZnQVJBQllBRVFBV0FCRUFGZ0FSQUJZQUVRQVdBQkVBRmdBUkFCWUFFUUFlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FXQUJFQUZnQVJBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBRmdBUkFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWRBQjBBSFFBZEFCMEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQXJBQ3NBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUt3QWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBVUFCUUFGQUFVQUFlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBRUFBUUFCQUFlQUI0QUt3QXJBQ3NBS3dBckFCTUFEUUFOQUEwQVVBQVRBQTBBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBS3dBckFDc0FLd0FyQUNzQVVBQU5BQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FFQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQXJBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUNzQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFBMEFEUUFOQUEwQURRQU5BQTBBRFFBZUFBMEFGZ0FOQUI0QUhnQVhBQmNBSGdBZUFCY0FGd0FXQUJFQUZnQVJBQllBRVFBV0FCRUFEUUFOQUEwQURRQVRBRkFBRFFBTkFCNEFEUUFOQUI0QUhnQWVBQjRBSGdBTUFBd0FEUUFOQUEwQUhnQU5BQTBBRmdBTkFBMEFEUUFOQUEwQURRQU5BQTBBSGdBTkFCNEFEUUFOQUI0QUhnQWVBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDc0FKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBckFDc0FLd0FyQUEwQUVRQVJBQ1VBSlFCSEFGY0FWd0FXQUJFQUZnQVJBQllBRVFBV0FCRUFGZ0FSQUNVQUpRQVdBQkVBRmdBUkFCWUFFUUFXQUJFQUZRQVdBQkVBRVFBbEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFBUUFCQUFFQUFRQUJBQUVBQ1VBVndCWEFGY0FWd0EyQUNVQUpRQlhBRmNBVndCSEFFY0FKUUFsQUNVQUt3QlJBRmNBVVFCWEFGRUFWd0JSQUZjQVVRQlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZFQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCUkFGY0FVUUJYQUZFQVZ3QlhBRmNBVndCWEFGY0FVUUJYQUZjQVZ3QlhBRmNBVndCUkFGRUFLd0FyQUFRQUJBQVZBQlVBUndCSEFGY0FGUUJSQUZjQVVRQlhBRkVBVndCUkFGY0FVUUJYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGRUFWd0JSQUZjQVVRQlhBRmNBVndCWEFGY0FWd0JSQUZjQVZ3QlhBRmNBVndCWEFGRUFVUUJYQUZjQVZ3QlhBQlVBVVFCSEFFY0FWd0FyQUNzQUt3QXJBQ3NBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBS3dCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FLd0FsQUNVQVZ3QlhBRmNBVndBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUZFQVVRQlJBRkVBVVFCUkFGRUFVUUJSQUZFQVVRQlJBRkVBVVFCUkFGRUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQXJBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUJQQUU4QVR3QlBBRThBVHdCUEFFOEFKUUJYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUNVQUpRQWxBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFFY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBS3dBckFDc0FKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFEUUFUQUEwQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUZBQVVBQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUZBQUJBQUVBQVFBQkFBZUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFIZ0JRQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QVVBQlFBQVFBQkFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQVFBQkFBZUFBMEFEUUFOQUEwQURRQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBVUFBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQlFBQjRBSGdBZUFCNEFIZ0FlQUZBQUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FyQUNzQUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBZUFCNEFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUFRQVVBQlFBRkFBQkFCUUFGQUFVQUJRQUFRQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFBUUFCQUFFQUFRQUJBQWVBQjRBSGdBZUFBUUFLd0FyQUNzQVVBQlFBRkFBVUFCUUFGQUFIZ0FlQUJvQUhnQXJBQ3NBS3dBckFDc0FLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQURnQU9BQk1BRXdBckFDc0FLd0FyQUNzQUt3QXJBQ3NBQkFBRUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUFRQUJBQUVBQVFBQkFBRUFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBTkFBMEFTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0FyQUNzQUt3QXJBQ3NBS3dBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFCUUFGQUFVQUJRQUZBQVVBQWVBQjRBSGdCUUFBNEFVQUJRQUFRQVVBQlFBRkFBVUFCUUFGQUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBMEFEUUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFCNEFXQUJZQUZnQVdBQllBRmdBV0FCWUFGZ0FXQUJZQUZnQVdBQllBRmdBV0FCWUFGZ0FXQUJZQUZnQVdBQllBRmdBV0FCWUFGZ0FXQUJZQUNzQUt3QXJBQVFBSGdBZUFCNEFIZ0FlQUI0QURRQU5BQTBBSGdBZUFCNEFIZ0FyQUZBQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QXJBQ3NBS3dBckFCNEFIZ0JjQUZ3QVhBQmNBRndBS2dCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FYQUJjQUZ3QVhBQmNBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUZBQVVBQlFBQVFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQVFBQkFBckFDc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0FyQUNzQUhnQU5BQTBBRFFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QUtnQXFBQ29BWEFBcUFDb0FLZ0JjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUFxQUZ3QUtnQXFBQ29BWEFCY0FDb0FLZ0JjQUZ3QVhBQmNBRndBS2dBcUFGd0FLZ0JjQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFGd0FYQUJjQUNvQUtnQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBQkFBRUFBUUFCQUFFQUEwQURRQlFBRkFBVUFBRUFBUUFLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0JRQUZBQVVBQlFBRkFBVUFBckFDc0FVQUJRQUZBQVVBQlFBRkFBS3dBckFGQUFVQUJRQUZBQVVBQlFBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUhnQWVBQ3NBS3dBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFEUUFFQUFRQUt3QXJBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBS3dBckFDc0FLd0FyQUNzQVZBQlZBRlVBVlFCVkFGVUFWUUJWQUZVQVZRQlZBRlVBVlFCVkFGVUFWUUJWQUZVQVZRQlZBRlVBVlFCVkFGVUFWUUJWQUZVQVZRQlVBRlVBVlFCVkFGVUFWUUJWQUZVQVZRQlZBRlVBVlFCVkFGVUFWUUJWQUZVQVZRQlZBRlVBVlFCVkFGVUFWUUJWQUZVQVZRQlZBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFGa0FXUUJaQUZrQVdRQlpBRmtBV1FCWkFGa0FXUUJaQUZrQVdRQlpBRmtBV1FCWkFGa0FLd0FyQUNzQUt3QmFBRm9BV2dCYUFGb0FXZ0JhQUZvQVdnQmFBRm9BV2dCYUFGb0FXZ0JhQUZvQVdnQmFBRm9BV2dCYUFGb0FXZ0JhQUZvQVdnQmFBRm9BS3dBckFDc0FLd0FHQUFZQUJnQUdBQVlBQmdBR0FBWUFCZ0FHQUFZQUJnQUdBQVlBQmdBR0FBWUFCZ0FHQUFZQUJnQUdBQVlBQmdBR0FBWUFCZ0FHQUFZQUJnQUdBQVlBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUNVQUpRQlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQUpRQWxBQ1VBSlFBbEFDVUFVQUJRQUZBQVVBQlFBRkFBVUFBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0JRQUZBQVVBQlFBRkFBS3dBckFDc0FLd0FyQUZZQUJBQldBRllBVmdCV0FGWUFWZ0JXQUZZQVZnQldBQjRBVmdCV0FGWUFWZ0JXQUZZQVZnQldBRllBVmdCV0FGWUFWZ0FyQUZZQVZnQldBRllBVmdBckFGWUFLd0JXQUZZQUt3QldBRllBS3dCV0FGWUFWZ0JXQUZZQVZnQldBRllBVmdCV0FGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFFUUFXQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0FyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBYUFCNEFLd0FyQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFHQUFSQUJFQUdBQVlBQk1BRXdBV0FCRUFGQUFyQUNzQUt3QXJBQ3NBS3dBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQ1VBSlFBbEFDVUFKUUFXQUJFQUZnQVJBQllBRVFBV0FCRUFGZ0FSQUJZQUVRQWxBQ1VBRmdBUkFDVUFKUUFsQUNVQUpRQWxBQ1VBRVFBbEFCRUFLd0FWQUJVQUV3QVRBQ1VBRmdBUkFCWUFFUUFXQUJFQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNzQUpRQWJBQm9BSlFBckFDc0FLd0FyQUZBQVVBQlFBRkFBVUFBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QXJBQWNBS3dBVEFDVUFKUUFiQUJvQUpRQWxBQllBRVFBbEFDVUFFUUFsQUJFQUpRQlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBQlVBRlFBbEFDVUFKUUFUQUNVQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUJZQUpRQVJBQ1VBSlFBbEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndBV0FDVUFFUUFsQUJZQUVRQVJBQllBRVFBUkFCVUFWd0JSQUZFQVVRQlJBRkVBVVFCUkFGRUFVUUJSQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFFY0FSd0FyQUNzQVZ3QlhBRmNBVndCWEFGY0FLd0FyQUZjQVZ3QlhBRmNBVndCWEFDc0FLd0JYQUZjQVZ3QlhBRmNBVndBckFDc0FWd0JYQUZjQUt3QXJBQ3NBR2dBYkFDVUFKUUFsQUJzQUd3QXJBQjRBSGdBZUFCNEFIZ0FlQUI0QUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QUVBQVFBQkFBUUFCMEFLd0FyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QlFBRkFBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQ3NBS3dBckFDc0FEUUFOQUEwQUt3QXJBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBS3dBckFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0JRQUZBQUhnQWVBQjRBS3dBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFBUUFLd0FyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FFQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBS3dBckFDc0FLd0FyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBQkFBRUFBUUFCQUFFQUNzQUt3QXJBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUEwQVVBQlFBRkFBVUFBckFDc0FLd0FyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFOQUZBQVVBQlFBRkFBVUFBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBS3dBckFDc0FLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FlQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FVQUJRQUZBQVVBQlFBRkFBS3dBckFGQUFLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFGQUFVQUFyQUNzQUt3QlFBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QU5BRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFlQUI0QVVBQlFBRkFBVUFCUUFGQUFVQUFyQUNzQUt3QXJBQ3NBS3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFGQUFVQUFyQUNzQUt3QXJBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFDc0FLd0FyQUEwQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUNzQUt3QXJBQ3NBS3dBZUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBS3dBckFDc0FVQUJRQUZBQVVBQlFBQVFBQkFBRUFDc0FCQUFFQUNzQUt3QXJBQ3NBS3dBRUFBUUFCQUFFQUZBQVVBQlFBRkFBS3dCUUFGQUFVQUFyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0FyQUFRQUJBQUVBQ3NBS3dBckFDc0FCQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUNzQUt3QXJBQ3NBS3dBckFBMEFEUUFOQUEwQURRQU5BQTBBRFFBZUFDc0FLd0FyQUNzQUt3QXJBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFlQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFlQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFBUUFCQUFyQUNzQUt3QXJBRkFBVUFCUUFGQUFVQUFOQUEwQURRQU5BQTBBRFFBVUFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QXJBQ3NBRFFBTkFBMEFEUUFOQUEwQURRQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQ3NBS3dBckFDc0FLd0FyQUI0QUhnQWVBQjRBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFDc0FLd0FyQUNzQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUFRQUJBQUVBQVFBS3dBckFDc0FLd0FyQUNzQUt3QXJBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBS3dBckFDc0FLd0FyQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQVFBQkFBTkFDc0FLd0JRQUZBQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFGQUFVQUJRQUZBQVVBQlFBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFCUUFGQUFVQUJRQUI0QUhnQWVBQjRBSGdBckFDc0FLd0FyQUNzQUt3QUVBQVFBQkFBRUFBUUFCQUFFQUEwQURRQWVBQjRBSGdBZUFCNEFLd0FyQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FCQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFlQUI0QUhnQU5BQTBBRFFBTkFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FlQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QXJBQ3NBS3dBckFDc0FLd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUNzQUt3QXJBQ3NBS3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUNzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QU5BQTBBRFFBTkFGQUFCQUFFQUZBQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUJBQWVBQTRBVUFBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBRUFGQUFVQUJRQUZBQURRQU5BQjRBRFFBRUFBUUFCQUFFQUI0QUJBQUVBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBVUFBT0FGQUFEUUFOQUEwQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBTkFBMEFIZ0FOQUEwQUhnQUVBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQXJBRkFBS3dCUUFGQUFVQUJRQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUEwQUt3QXJBQ3NBS3dBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFLd0FyQUNzQUt3QXJBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBS3dBckFDc0FLd0FyQUNzQUJBQUVBQVFBQkFBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFDc0FVQUJRQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0JRQUZBQVVBQlFBRkFBVUFCUUFDc0FVQUJRQUNzQVVBQlFBRkFBVUFCUUFDc0FCQUFFQUZBQUJBQUVBQVFBQkFBRUFBUUFCQUFyQUNzQUJBQUVBQ3NBS3dBRUFBUUFCQUFyQUNzQVVBQXJBQ3NBS3dBckFDc0FLd0FFQUNzQUt3QXJBQ3NBS3dCUUFGQUFVQUJRQUZBQUJBQUVBQ3NBS3dBRUFBUUFCQUFFQUFRQUJBQUVBQ3NBS3dBckFBUUFCQUFFQUFRQUJBQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBQkFBRUFBUUFCQUFFQUFRQUJBQlFBRkFBVUFCUUFBMEFEUUFOQUEwQUhnQkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBQTBBRFFBckFCNEFCQUJRQUZBQVVBQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBRUFBUUFCQUFFQUZBQVVBQWVBRkFBS3dBckFDc0FLd0FyQUNzQUt3QXJBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBS3dBckFDc0FLd0FyQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFCQUFFQUFRQUJBQUVBQVFBQkFBckFDc0FCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFEZ0FOQUEwQUV3QVRBQjRBSGdBZUFBMEFEUUFOQUEwQURRQU5BQTBBRFFBTkFBMEFEUUFOQUEwQURRQU5BRkFBVUFCUUFGQUFCQUFFQUNzQUt3QUVBQTBBRFFBZUFGQUFLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQUt3QXJBQ3NBS3dBckFDc0FEZ0FPQUE0QURnQU9BQTRBRGdBT0FBNEFEZ0FPQUE0QURnQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUZBQUt3QXJBQ3NBS3dBckFDc0FLd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBS3dBckFDb0FLZ0FxQUNvQUtnQXFBQ29BS2dBcUFDb0FLZ0FxQUNvQUtnQXFBQ3NBS3dBckFDc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JjQUZ3QURRQU5BQTBBS2dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBZUFDc0FLd0FyQUNzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBS3dBckFGQUFLd0FyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUZBQVVBQXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUJBQUVBQVFBQkFBRUFBUUFLd0FFQUFRQUt3QXJBQVFBQkFBRUFBUUFVQUFFQUZBQUJBQUVBQTBBRFFBTkFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FLd0FyQUNzQUt3QXJBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUJBQUVBQVFBQkFBRUFBUUFCQUFyQUNzQUJBQUVBQVFBQkFBRUFBUUFCQUJRQUE0QVVBQUVBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBRkFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQUVBQVFBQkFBRUFBUUFCQUFFQUZBQUJBQUVBQVFBQkFBT0FCNEFEUUFOQUEwQURRQU9BQjRBQkFBckFDc0FLd0FyQUNzQUt3QXJBQ3NBVUFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBMEFEUUFOQUZBQURnQU9BQTRBRFFBTkFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFDc0FCQUFFQUFRQUJBQUVBQVFBQkFBRUFGQUFEUUFOQUEwQURRQU5BQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQ3NBS3dBT0FCTUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0FyQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBckFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUNzQVVBQlFBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFFQUFRQUJBQUVBQVFBQkFBckFDc0FLd0FFQUNzQUJBQUVBQ3NBQkFBRUFBUUFCQUFFQUFRQUJBQlFBQVFBS3dBckFDc0FLd0FyQUNzQUt3QXJBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBS3dBckFDc0FLd0FyQUNzQVVBQlFBRkFBVUFCUUFGQUFLd0JRQUZBQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFFQUFRQUJBQUVBQVFBS3dBRUFBUUFLd0FFQUFRQUJBQUVBQVFBVUFBckFDc0FLd0FyQUNzQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBQkFBRUFBUUFCQUFlQUI0QUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QlFBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWFBQm9BR2dBYUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUEwQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUNzQUt3QXJBQ3NBS3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQ3NBRFFBTkFBMEFEUUFOQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QlFBRkFBVUFCUUFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBU0FCSUFFZ0FRd0JEQUVNQVVBQlFBRkFBVUFCREFGQUFVQUJRQUVnQVF3QklBRU1BVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBU0FCREFFTUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBS3dBSkFBa0FDUUFKQUFrQUNRQUpBQllBRVFBckFDc0FLd0FyQUNzQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJJQUVNQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQUt3QXJBQ3NBS3dBTkFBMEFLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QXJBQVFBQkFBRUFBUUFCQUFOQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFFQUFRQUJBQUVBQVFBQkFBRUFBMEFEUUFOQUI0QUhnQWVBQjRBSGdBZUFGQUFVQUJRQUZBQURRQWVBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dBckFGQUFVQUJRQUZBQVVBQlFBRkFBS3dCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFyQUNzQUt3QXJBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFOQUEwQUhnQWVBQ3NBS3dBckFDc0FLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QXJBQ3NBS3dBRUFGQUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBS3dBckFDc0FLd0FyQUNzQUt3QUVBQVFBQkFBRUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVJ3QkhBQlVBUndBSkFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FFQUFRQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FVUUJSQUZFQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dCUkFGRUFVUUJSQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUNzQUt3QXJBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFDc0FLd0FyQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFDc0FLd0FyQUNzQUt3QXJBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFDc0FIZ0FFQUFRQURRQUVBQVFBQkFBRUFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQjRBSGdBZUFCNEFIZ0FlQUI0QUt3QXJBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUFRQUJBQUVBQVFBQkFBZUFCNEFIZ0FFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQjRBSGdBRUFBUUFCQUFFQUFRQUJBQUVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFCQUFFQUFRQUJBQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBQkFBRUFBUUFIZ0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQXJBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFLd0JRQUZBQUt3QXJBRkFBS3dBckFGQUFVQUFyQUNzQVVBQlFBRkFBVUFBckFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUNzQVVBQXJBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBS3dCUUFGQUFVQUJRQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUNzQUhnQWVBRkFBVUFCUUFGQUFVQUFyQUZBQUt3QXJBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUt3QXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUhnQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQ3NBS3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFlQUI0QUhnQWVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFlQUI0QUhnQWVBQjRBSGdBZUFCNEFCQUFlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUFRQUhnQWVBQTBBRFFBTkFBMEFIZ0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBRUFBUUFCQUFFQUFRQUt3QUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFBUUFCQUFFQUFRQUJBQUVBQVFBS3dBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBS3dBckFBUUFCQUFFQUFRQUJBQUVBQVFBS3dBRUFBUUFLd0FFQUFRQUJBQUVBQVFBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQ3NBS3dBRUFBUUFCQUFFQUFRQUJBQUVBRkFBVUFCUUFGQUFVQUJRQUZBQUt3QXJBRXNBU3dCTEFFc0FTd0JMQUVzQVN3QkxBRXNBS3dBckFDc0FLd0JRQUI0QUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQUVBQVFBQkFBRUFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FLd0FyQUNzQUt3QXJBQnNBVUFCUUFGQUFVQUJRQUNzQUt3QlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQUVBQVFBQkFBRUFBUUFCQUFFQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUI0QUhnQWVBQjRBQkFBRUFBUUFCQUFFQUFRQUJBQlFBQ3NBS3dBckFDc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FTd0FyQUNzQUt3QXJBQllBRmdBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUdnQlFBRkFBVUFBYUFGQUFVQUJRQUZBQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFlQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFDc0FLd0JRQUZBQVVBQlFBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBS3dCUUFGQUFLd0JRQUNzQUt3QlFBQ3NBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBckFGQUFVQUJRQUZBQUt3QlFBQ3NBVUFBckFDc0FLd0FyQUNzQUt3QlFBQ3NBS3dBckFDc0FVQUFyQUZBQUt3QlFBQ3NBVUFCUUFGQUFLd0JRQUZBQUt3QlFBQ3NBS3dCUUFDc0FVQUFyQUZBQUt3QlFBQ3NBVUFBckFGQUFVQUFyQUZBQUt3QXJBRkFBVUFCUUFGQUFLd0JRQUZBQVVBQlFBRkFBVUFCUUFDc0FVQUJRQUZBQVVBQXJBRkFBVUFCUUFGQUFLd0JRQUNzQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQXJBQ3NBS3dBckFDc0FVQUJRQUZBQUt3QlFBRkFBVUFCUUFGQUFLd0JRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBZUFCNEFLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBRThBVHdCUEFFOEFUd0JQQUU4QVR3QlBBRThBVHdCUEFFOEFKUUFsQUNVQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhnQWVBQjBBSFFBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhRQWRBQjRBSGdBZUFDVUFKUUFsQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFkQUIwQUhRQWRBQjBBSFFBZEFCMEFIUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQXBBQ2tBS1FBcEFDa0FLUUFwQUNrQUtRQXBBQ2tBS1FBcEFDa0FLUUFwQUNrQUtRQXBBQ2tBS1FBcEFDa0FLUUFwQUNrQUpRQWxBQ1VBSlFBbEFDQUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWVBQjRBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUI0QUhnQWxBQ1VBSlFBbEFDVUFIZ0FsQUNVQUpRQWxBQ1VBSUFBZ0FDQUFKUUFsQUNBQUpRQWxBQ0FBSUFBZ0FDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNFQUlRQWhBQ0VBSVFBbEFDVUFJQUFnQUNVQUpRQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSlFBbEFDVUFJQUFsQUNVQUpRQWxBQ0FBSUFBZ0FDVUFJQUFnQUNBQUpRQWxBQ1VBSlFBbEFDVUFKUUFnQUNVQUlBQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFIZ0FsQUI0QUpRQWVBQ1VBSlFBbEFDVUFKUUFnQUNVQUpRQWxBQ1VBSGdBbEFCNEFIZ0FsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQjRBSGdBZUFCNEFIZ0FlQUI0QUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDQUFJQUFsQUNVQUpRQWxBQ0FBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ0FBSlFBbEFDVUFKUUFnQUNBQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBZUFCNEFIZ0FlQUI0QUhnQWxBQ1VBSlFBbEFDVUFKUUFsQUNBQUlBQWdBQ1VBSlFBbEFDQUFJQUFnQUNBQUlBQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCY0FGd0FYQUJVQUZRQVZBQjRBSGdBZUFCNEFKUUFsQUNVQUlBQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNBQUlBQWdBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ0FBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDQUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFKUUFsQUNVQUpRQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUNVQUpRQWxBQ1VBSlFBbEFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWdBQ1VBSlFBZ0FDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSlFBbEFDVUFKUUFsQUNVQUlBQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ1VBSlFBZ0FDQUFJQUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBZ0FDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNBQUlBQWxBQ0FBSUFBbEFDQUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWdBQ0FBSUFBbEFDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUpRQWxBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBS3dBZUFCNEFIZ0FlQUI0QUhnQWVBQjRBSGdBZUFCNEFIZ0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFFc0FTd0JMQUVzQVN3QkxBRXNBU3dCTEFFc0FLd0FyQUNzQUt3QXJBQ3NBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFLd0FyQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBQ1VBSlFCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0FsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQVZ3QlhBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUJYQUZjQVZ3QlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBVndCWEFGY0FKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQlhBRmNBVndCWEFGY0FWd0JYQUZjQVZ3QlhBRmNBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFKUUFsQUNVQUpRQWxBQ1VBSlFBbEFDVUFLd0FFQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQ3NBS3dBckFDc0FLd0FyQUNzQUt3QXJBQT09IiksTD1BcnJheS5pc0FycmF5KG0pP2Z1bmN0aW9uKEEpe2Zvcih2YXIgZT1BLmxlbmd0aCx0PVtdLHI9MDtyPGU7cis9NCl0LnB1c2goQVtyKzNdPDwyNHxBW3IrMl08PDE2fEFbcisxXTw8OHxBW3JdKTtyZXR1cm4gdH0obSk6bmV3IFVpbnQzMkFycmF5KG0pLGI9QXJyYXkuaXNBcnJheShtKT9mdW5jdGlvbihBKXtmb3IodmFyIGU9QS5sZW5ndGgsdD1bXSxyPTA7cjxlO3IrPTIpdC5wdXNoKEFbcisxXTw8OHxBW3JdKTtyZXR1cm4gdH0obSk6bmV3IFVpbnQxNkFycmF5KG0pLHk9dyhiLDEyLExbNF0vMiksSz0yPT09TFs1XT93KGIsKDI0K0xbNF0pLzIpOihtPUwsYj1NYXRoLmNlaWwoKDI0K0xbNF0pLzQpLG0uc2xpY2U/bS5zbGljZShiLEspOm5ldyBVaW50MzJBcnJheShBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChtLGIsSykpKSxuZXcgVShMWzBdLExbMV0sTFsyXSxMWzNdLHksSykpLEJBPVtKLDM2XSxuQT1bMSwyLDMsNV0sc0E9W0QsOF0sb0E9W1AsTl0saUE9bkEuY29uY2F0KHNBKSxRQT1baix6LCQsWixfXSxjQT1beCx2XSxhQT0oZ0EucHJvdG90eXBlLnNsaWNlPWZ1bmN0aW9uKCl7cmV0dXJuIGcuYXBwbHkodm9pZCAwLHRoaXMuY29kZVBvaW50cy5zbGljZSh0aGlzLnN0YXJ0LHRoaXMuZW5kKSl9LGdBKTtmdW5jdGlvbiBnQShBLGUsdCxyKXt0aGlzLmNvZGVQb2ludHM9QSx0aGlzLnJlcXVpcmVkPSIhIj09PWUsdGhpcy5zdGFydD10LHRoaXMuZW5kPXJ9ZnVuY3Rpb24gd0EoQSxlKXt2YXIgdD1RKEEpLHI9KGU9SSh0LGUpKVswXSxCPWVbMV0sbj1lWzJdLHM9dC5sZW5ndGgsbz0wLGk9MDtyZXR1cm57bmV4dDpmdW5jdGlvbigpe2lmKHM8PWkpcmV0dXJue2RvbmU6ITAsdmFsdWU6bnVsbH07Zm9yKHZhciBBPXRBO2k8cyYmKEE9ZnVuY3Rpb24oQSxlLHQscixCKXtpZigwPT09dFtyXSlyZXR1cm4gdEE7dmFyIG49ci0xO2lmKEFycmF5LmlzQXJyYXkoQikmJiEwPT09QltuXSlyZXR1cm4gdEE7dmFyIHM9bi0xLG89MStuLGk9ZVtuXSxyPTA8PXM/ZVtzXTowLEI9ZVtvXTtpZigyPT09aSYmMz09PUIpcmV0dXJuIHRBO2lmKC0xIT09bkEuaW5kZXhPZihpKSlyZXR1cm4iISI7aWYoLTEhPT1uQS5pbmRleE9mKEIpKXJldHVybiB0QTtpZigtMSE9PXNBLmluZGV4T2YoQikpcmV0dXJuIHRBO2lmKDg9PT1FKG4sZSkpcmV0dXJuIsO3IjtpZigxMT09PXJBLmdldChBW25dKSlyZXR1cm4gdEE7aWYoKGk9PT1ZfHxpPT09VykmJjExPT09ckEuZ2V0KEFbb10pKXJldHVybiB0QTtpZig3PT09aXx8Nz09PUIpcmV0dXJuIHRBO2lmKDk9PT1pKXJldHVybiB0QTtpZigtMT09PVtELHYseF0uaW5kZXhPZihpKSYmOT09PUIpcmV0dXJuIHRBO2lmKC0xIT09W00sUyxULGssWF0uaW5kZXhPZihCKSlyZXR1cm4gdEE7aWYoRShuLGUpPT09VilyZXR1cm4gdEE7aWYocCgyMyxWLG4sZSkpcmV0dXJuIHRBO2lmKHAoW00sU10sTyxuLGUpKXJldHVybiB0QTtpZihwKDEyLDEyLG4sZSkpcmV0dXJuIHRBO2lmKGk9PT1EKXJldHVybiLDtyI7aWYoMjM9PT1pfHwyMz09PUIpcmV0dXJuIHRBO2lmKDE2PT09Qnx8MTY9PT1pKXJldHVybiLDtyI7aWYoLTEhPT1bdix4LE9dLmluZGV4T2YoQil8fDE0PT09aSlyZXR1cm4gdEE7aWYoMzY9PT1yJiYtMSE9PWNBLmluZGV4T2YoaSkpcmV0dXJuIHRBO2lmKGk9PT1YJiYzNj09PUIpcmV0dXJuIHRBO2lmKEI9PT1HKXJldHVybiB0QTtpZigtMSE9PUJBLmluZGV4T2YoQikmJmk9PT1SfHwtMSE9PUJBLmluZGV4T2YoaSkmJkI9PT1SKXJldHVybiB0QTtpZihpPT09UCYmLTEhPT1bcSxZLFddLmluZGV4T2YoQil8fC0xIT09W3EsWSxXXS5pbmRleE9mKGkpJiZCPT09TilyZXR1cm4gdEE7aWYoLTEhPT1CQS5pbmRleE9mKGkpJiYtMSE9PW9BLmluZGV4T2YoQil8fC0xIT09b0EuaW5kZXhPZihpKSYmLTEhPT1CQS5pbmRleE9mKEIpKXJldHVybiB0QTtpZigtMSE9PVtQLE5dLmluZGV4T2YoaSkmJihCPT09Unx8LTEhPT1bVix4XS5pbmRleE9mKEIpJiZlWzErb109PT1SKXx8LTEhPT1bVix4XS5pbmRleE9mKGkpJiZCPT09Unx8aT09PVImJi0xIT09W1IsWCxrXS5pbmRleE9mKEIpKXJldHVybiB0QTtpZigtMSE9PVtSLFgsayxNLFNdLmluZGV4T2YoQikpZm9yKHZhciBRPW47MDw9UTspe2lmKChjPWVbUV0pPT09UilyZXR1cm4gdEE7aWYoLTE9PT1bWCxrXS5pbmRleE9mKGMpKWJyZWFrO1EtLX1pZigtMSE9PVtQLE5dLmluZGV4T2YoQikpZm9yKHZhciBjLFE9LTEhPT1bTSxTXS5pbmRleE9mKGkpP3M6bjswPD1ROyl7aWYoKGM9ZVtRXSk9PT1SKXJldHVybiB0QTtpZigtMT09PVtYLGtdLmluZGV4T2YoYykpYnJlYWs7US0tfWlmKGo9PT1pJiYtMSE9PVtqLHosWixfXS5pbmRleE9mKEIpfHwtMSE9PVt6LFpdLmluZGV4T2YoaSkmJi0xIT09W3osJF0uaW5kZXhPZihCKXx8LTEhPT1bJCxfXS5pbmRleE9mKGkpJiZCPT09JClyZXR1cm4gdEE7aWYoLTEhPT1RQS5pbmRleE9mKGkpJiYtMSE9PVtHLE5dLmluZGV4T2YoQil8fC0xIT09UUEuaW5kZXhPZihCKSYmaT09PVApcmV0dXJuIHRBO2lmKC0xIT09QkEuaW5kZXhPZihpKSYmLTEhPT1CQS5pbmRleE9mKEIpKXJldHVybiB0QTtpZihpPT09ayYmLTEhPT1CQS5pbmRleE9mKEIpKXJldHVybiB0QTtpZigtMSE9PUJBLmNvbmNhdChSKS5pbmRleE9mKGkpJiZCPT09ViYmLTE9PT1lQS5pbmRleE9mKEFbb10pfHwtMSE9PUJBLmNvbmNhdChSKS5pbmRleE9mKEIpJiZpPT09UylyZXR1cm4gdEE7aWYoNDE9PT1pJiY0MT09PUIpe2Zvcih2YXIgYT10W25dLGc9MTswPGEmJjQxPT09ZVstLWFdOylnKys7aWYoZyUyIT0wKXJldHVybiB0QX1yZXR1cm4gaT09PVkmJkI9PT1XP3RBOiLDtyJ9KHQsQixyLCsraSxuKSk9PT10QTspO2lmKEE9PT10QSYmaSE9PXMpcmV0dXJue2RvbmU6ITAsdmFsdWU6bnVsbH07dmFyIGU9bmV3IGFBKHQsQSxvLGkpO3JldHVybiBvPWkse3ZhbHVlOmUsZG9uZTohMX19fX1mdW5jdGlvbiBVQShBKXtyZXR1cm4gNDg8PUEmJkE8PTU3fWZ1bmN0aW9uIGxBKEEpe3JldHVybiBVQShBKXx8NjU8PUEmJkE8PTcwfHw5Nzw9QSYmQTw9MTAyfWZ1bmN0aW9uIENBKEEpe3JldHVybiAxMD09PUF8fDk9PT1BfHwzMj09PUF9ZnVuY3Rpb24gdUEoQSl7cmV0dXJuIDk3PD0odD1lPUEpJiZ0PD0xMjJ8fDY1PD0oZT1lKSYmZTw9OTB8fDEyODw9QXx8OTU9PT1BO3ZhciBlLHR9ZnVuY3Rpb24gRkEoQSl7cmV0dXJuIHVBKEEpfHxVQShBKXx8NDU9PT1BfWZ1bmN0aW9uIGhBKEEsZSl7cmV0dXJuIDkyPT09QSYmMTAhPT1lfWZ1bmN0aW9uIGRBKEEsZSx0KXtyZXR1cm4gNDU9PT1BP3VBKGUpfHxoQShlLHQpOiEhdUEoQSl8fDkyPT09QSYmMTAhPT1lfWZ1bmN0aW9uIGZBKEEsZSx0KXtyZXR1cm4gNDM9PT1BfHw0NT09PUE/ISFVQShlKXx8NDY9PT1lJiZVQSh0KTpVQSg0Nj09PUE/ZTpBKX12YXIgSEE9e3R5cGU6Mn0scEE9e3R5cGU6M30sRUE9e3R5cGU6NH0sSUE9e3R5cGU6MTN9LHlBPXt0eXBlOjh9LEtBPXt0eXBlOjIxfSxtQT17dHlwZTo5fSxMQT17dHlwZToxMH0sYkE9e3R5cGU6MTF9LERBPXt0eXBlOjEyfSx2QT17dHlwZToxNH0seEE9e3R5cGU6MjN9LE1BPXt0eXBlOjF9LFNBPXt0eXBlOjI1fSxUQT17dHlwZToyNH0sR0E9e3R5cGU6MjZ9LE9BPXt0eXBlOjI3fSxWQT17dHlwZToyOH0sa0E9e3R5cGU6Mjl9LFJBPXt0eXBlOjMxfSxOQT17dHlwZTozMn0sUEE9KFhBLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihBKXt0aGlzLl92YWx1ZT10aGlzLl92YWx1ZS5jb25jYXQoUShBKSl9LFhBLnByb3RvdHlwZS5yZWFkPWZ1bmN0aW9uKCl7Zm9yKHZhciBBPVtdLGU9dGhpcy5jb25zdW1lVG9rZW4oKTtlIT09TkE7KUEucHVzaChlKSxlPXRoaXMuY29uc3VtZVRva2VuKCk7cmV0dXJuIEF9LFhBLnByb3RvdHlwZS5jb25zdW1lVG9rZW49ZnVuY3Rpb24oKXt2YXIgQT10aGlzLmNvbnN1bWVDb2RlUG9pbnQoKTtzd2l0Y2goQSl7Y2FzZSAzNDpyZXR1cm4gdGhpcy5jb25zdW1lU3RyaW5nVG9rZW4oMzQpO2Nhc2UgMzU6dmFyIGU9dGhpcy5wZWVrQ29kZVBvaW50KDApLHQ9dGhpcy5wZWVrQ29kZVBvaW50KDEpLHI9dGhpcy5wZWVrQ29kZVBvaW50KDIpO2lmKEZBKGUpfHxoQSh0LHIpKXt2YXIgQj1kQShlLHQscik/MjoxO3JldHVybnt0eXBlOjUsdmFsdWU6dGhpcy5jb25zdW1lTmFtZSgpLGZsYWdzOkJ9fWJyZWFrO2Nhc2UgMzY6aWYoNjE9PT10aGlzLnBlZWtDb2RlUG9pbnQoMCkpcmV0dXJuIHRoaXMuY29uc3VtZUNvZGVQb2ludCgpLElBO2JyZWFrO2Nhc2UgMzk6cmV0dXJuIHRoaXMuY29uc3VtZVN0cmluZ1Rva2VuKDM5KTtjYXNlIDQwOnJldHVybiBIQTtjYXNlIDQxOnJldHVybiBwQTtjYXNlIDQyOmlmKDYxPT09dGhpcy5wZWVrQ29kZVBvaW50KDApKXJldHVybiB0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKSx2QTticmVhaztjYXNlIDQzOmlmKGZBKEEsdGhpcy5wZWVrQ29kZVBvaW50KDApLHRoaXMucGVla0NvZGVQb2ludCgxKSkpcmV0dXJuIHRoaXMucmVjb25zdW1lQ29kZVBvaW50KEEpLHRoaXMuY29uc3VtZU51bWVyaWNUb2tlbigpO2JyZWFrO2Nhc2UgNDQ6cmV0dXJuIEVBO2Nhc2UgNDU6dmFyIHI9QSxCPXRoaXMucGVla0NvZGVQb2ludCgwKSxuPXRoaXMucGVla0NvZGVQb2ludCgxKTtpZihmQShyLEIsbikpcmV0dXJuIHRoaXMucmVjb25zdW1lQ29kZVBvaW50KEEpLHRoaXMuY29uc3VtZU51bWVyaWNUb2tlbigpO2lmKGRBKHIsQixuKSlyZXR1cm4gdGhpcy5yZWNvbnN1bWVDb2RlUG9pbnQoQSksdGhpcy5jb25zdW1lSWRlbnRMaWtlVG9rZW4oKTtpZig0NT09PUImJjYyPT09bilyZXR1cm4gdGhpcy5jb25zdW1lQ29kZVBvaW50KCksdGhpcy5jb25zdW1lQ29kZVBvaW50KCksVEE7YnJlYWs7Y2FzZSA0NjppZihmQShBLHRoaXMucGVla0NvZGVQb2ludCgwKSx0aGlzLnBlZWtDb2RlUG9pbnQoMSkpKXJldHVybiB0aGlzLnJlY29uc3VtZUNvZGVQb2ludChBKSx0aGlzLmNvbnN1bWVOdW1lcmljVG9rZW4oKTticmVhaztjYXNlIDQ3OmlmKDQyPT09dGhpcy5wZWVrQ29kZVBvaW50KDApKWZvcih0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKTs7KXt2YXIgcz10aGlzLmNvbnN1bWVDb2RlUG9pbnQoKTtpZig0Mj09PXMmJjQ3PT09KHM9dGhpcy5jb25zdW1lQ29kZVBvaW50KCkpKXJldHVybiB0aGlzLmNvbnN1bWVUb2tlbigpO2lmKC0xPT09cylyZXR1cm4gdGhpcy5jb25zdW1lVG9rZW4oKX1icmVhaztjYXNlIDU4OnJldHVybiBHQTtjYXNlIDU5OnJldHVybiBPQTtjYXNlIDYwOmlmKDMzPT09dGhpcy5wZWVrQ29kZVBvaW50KDApJiY0NT09PXRoaXMucGVla0NvZGVQb2ludCgxKSYmNDU9PT10aGlzLnBlZWtDb2RlUG9pbnQoMikpcmV0dXJuIHRoaXMuY29uc3VtZUNvZGVQb2ludCgpLHRoaXMuY29uc3VtZUNvZGVQb2ludCgpLFNBO2JyZWFrO2Nhc2UgNjQ6dmFyIG49dGhpcy5wZWVrQ29kZVBvaW50KDApLG89dGhpcy5wZWVrQ29kZVBvaW50KDEpLGk9dGhpcy5wZWVrQ29kZVBvaW50KDIpO2lmKGRBKG4sbyxpKSlyZXR1cm57dHlwZTo3LHZhbHVlOnRoaXMuY29uc3VtZU5hbWUoKX07YnJlYWs7Y2FzZSA5MTpyZXR1cm4gVkE7Y2FzZSA5MjppZihoQShBLHRoaXMucGVla0NvZGVQb2ludCgwKSkpcmV0dXJuIHRoaXMucmVjb25zdW1lQ29kZVBvaW50KEEpLHRoaXMuY29uc3VtZUlkZW50TGlrZVRva2VuKCk7YnJlYWs7Y2FzZSA5MzpyZXR1cm4ga0E7Y2FzZSA2MTppZig2MT09PXRoaXMucGVla0NvZGVQb2ludCgwKSlyZXR1cm4gdGhpcy5jb25zdW1lQ29kZVBvaW50KCkseUE7YnJlYWs7Y2FzZSAxMjM6cmV0dXJuIGJBO2Nhc2UgMTI1OnJldHVybiBEQTtjYXNlIDExNzpjYXNlIDg1Om89dGhpcy5wZWVrQ29kZVBvaW50KDApLGk9dGhpcy5wZWVrQ29kZVBvaW50KDEpO3JldHVybiA0MyE9PW98fCFsQShpKSYmNjMhPT1pfHwodGhpcy5jb25zdW1lQ29kZVBvaW50KCksdGhpcy5jb25zdW1lVW5pY29kZVJhbmdlVG9rZW4oKSksdGhpcy5yZWNvbnN1bWVDb2RlUG9pbnQoQSksdGhpcy5jb25zdW1lSWRlbnRMaWtlVG9rZW4oKTtjYXNlIDEyNDppZig2MT09PXRoaXMucGVla0NvZGVQb2ludCgwKSlyZXR1cm4gdGhpcy5jb25zdW1lQ29kZVBvaW50KCksbUE7aWYoMTI0PT09dGhpcy5wZWVrQ29kZVBvaW50KDApKXJldHVybiB0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKSxLQTticmVhaztjYXNlIDEyNjppZig2MT09PXRoaXMucGVla0NvZGVQb2ludCgwKSlyZXR1cm4gdGhpcy5jb25zdW1lQ29kZVBvaW50KCksTEE7YnJlYWs7Y2FzZS0xOnJldHVybiBOQX1yZXR1cm4gQ0EoQSk/KHRoaXMuY29uc3VtZVdoaXRlU3BhY2UoKSxSQSk6VUEoQSk/KHRoaXMucmVjb25zdW1lQ29kZVBvaW50KEEpLHRoaXMuY29uc3VtZU51bWVyaWNUb2tlbigpKTp1QShBKT8odGhpcy5yZWNvbnN1bWVDb2RlUG9pbnQoQSksdGhpcy5jb25zdW1lSWRlbnRMaWtlVG9rZW4oKSk6e3R5cGU6Nix2YWx1ZTpnKEEpfX0sWEEucHJvdG90eXBlLmNvbnN1bWVDb2RlUG9pbnQ9ZnVuY3Rpb24oKXt2YXIgQT10aGlzLl92YWx1ZS5zaGlmdCgpO3JldHVybiB2b2lkIDA9PT1BPy0xOkF9LFhBLnByb3RvdHlwZS5yZWNvbnN1bWVDb2RlUG9pbnQ9ZnVuY3Rpb24oQSl7dGhpcy5fdmFsdWUudW5zaGlmdChBKX0sWEEucHJvdG90eXBlLnBlZWtDb2RlUG9pbnQ9ZnVuY3Rpb24oQSl7cmV0dXJuIEE+PXRoaXMuX3ZhbHVlLmxlbmd0aD8tMTp0aGlzLl92YWx1ZVtBXX0sWEEucHJvdG90eXBlLmNvbnN1bWVVbmljb2RlUmFuZ2VUb2tlbj1mdW5jdGlvbigpe2Zvcih2YXIgQT1bXSxlPXRoaXMuY29uc3VtZUNvZGVQb2ludCgpO2xBKGUpJiZBLmxlbmd0aDw2OylBLnB1c2goZSksZT10aGlzLmNvbnN1bWVDb2RlUG9pbnQoKTtmb3IodmFyIHQ9ITE7NjM9PT1lJiZBLmxlbmd0aDw2OylBLnB1c2goZSksZT10aGlzLmNvbnN1bWVDb2RlUG9pbnQoKSx0PSEwO2lmKHQpcmV0dXJue3R5cGU6MzAsc3RhcnQ6cGFyc2VJbnQoZy5hcHBseSh2b2lkIDAsQS5tYXAoZnVuY3Rpb24oQSl7cmV0dXJuIDYzPT09QT80ODpBfSkpLDE2KSxlbmQ6cGFyc2VJbnQoZy5hcHBseSh2b2lkIDAsQS5tYXAoZnVuY3Rpb24oQSl7cmV0dXJuIDYzPT09QT83MDpBfSkpLDE2KX07dmFyIHI9cGFyc2VJbnQoZy5hcHBseSh2b2lkIDAsQSksMTYpO2lmKDQ1PT09dGhpcy5wZWVrQ29kZVBvaW50KDApJiZsQSh0aGlzLnBlZWtDb2RlUG9pbnQoMSkpKXt0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKTtmb3IodmFyIGU9dGhpcy5jb25zdW1lQ29kZVBvaW50KCksQj1bXTtsQShlKSYmQi5sZW5ndGg8NjspQi5wdXNoKGUpLGU9dGhpcy5jb25zdW1lQ29kZVBvaW50KCk7cmV0dXJue3R5cGU6MzAsc3RhcnQ6cixlbmQ6cGFyc2VJbnQoZy5hcHBseSh2b2lkIDAsQiksMTYpfX1yZXR1cm57dHlwZTozMCxzdGFydDpyLGVuZDpyfX0sWEEucHJvdG90eXBlLmNvbnN1bWVJZGVudExpa2VUb2tlbj1mdW5jdGlvbigpe3ZhciBBPXRoaXMuY29uc3VtZU5hbWUoKTtyZXR1cm4idXJsIj09PUEudG9Mb3dlckNhc2UoKSYmNDA9PT10aGlzLnBlZWtDb2RlUG9pbnQoMCk/KHRoaXMuY29uc3VtZUNvZGVQb2ludCgpLHRoaXMuY29uc3VtZVVybFRva2VuKCkpOjQwPT09dGhpcy5wZWVrQ29kZVBvaW50KDApPyh0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKSx7dHlwZToxOSx2YWx1ZTpBfSk6e3R5cGU6MjAsdmFsdWU6QX19LFhBLnByb3RvdHlwZS5jb25zdW1lVXJsVG9rZW49ZnVuY3Rpb24oKXt2YXIgQT1bXTtpZih0aGlzLmNvbnN1bWVXaGl0ZVNwYWNlKCksLTE9PT10aGlzLnBlZWtDb2RlUG9pbnQoMCkpcmV0dXJue3R5cGU6MjIsdmFsdWU6IiJ9O3ZhciBlLHQ9dGhpcy5wZWVrQ29kZVBvaW50KDApO2lmKDM5PT09dHx8MzQ9PT10KXt0PXRoaXMuY29uc3VtZVN0cmluZ1Rva2VuKHRoaXMuY29uc3VtZUNvZGVQb2ludCgpKTtyZXR1cm4gMD09PXQudHlwZSYmKHRoaXMuY29uc3VtZVdoaXRlU3BhY2UoKSwtMT09PXRoaXMucGVla0NvZGVQb2ludCgwKXx8NDE9PT10aGlzLnBlZWtDb2RlUG9pbnQoMCkpPyh0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKSx7dHlwZToyMix2YWx1ZTp0LnZhbHVlfSk6KHRoaXMuY29uc3VtZUJhZFVybFJlbW5hbnRzKCkseEEpfWZvcig7Oyl7dmFyIHI9dGhpcy5jb25zdW1lQ29kZVBvaW50KCk7aWYoLTE9PT1yfHw0MT09PXIpcmV0dXJue3R5cGU6MjIsdmFsdWU6Zy5hcHBseSh2b2lkIDAsQSl9O2lmKENBKHIpKXJldHVybiB0aGlzLmNvbnN1bWVXaGl0ZVNwYWNlKCksLTE9PT10aGlzLnBlZWtDb2RlUG9pbnQoMCl8fDQxPT09dGhpcy5wZWVrQ29kZVBvaW50KDApPyh0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKSx7dHlwZToyMix2YWx1ZTpnLmFwcGx5KHZvaWQgMCxBKX0pOih0aGlzLmNvbnN1bWVCYWRVcmxSZW1uYW50cygpLHhBKTtpZigzND09PXJ8fDM5PT09cnx8NDA9PT1yfHwoMDw9KGU9cikmJmU8PTh8fDExPT09ZXx8MTQ8PWUmJmU8PTMxfHwxMjc9PT1lKSlyZXR1cm4gdGhpcy5jb25zdW1lQmFkVXJsUmVtbmFudHMoKSx4QTtpZig5Mj09PXIpe2lmKCFoQShyLHRoaXMucGVla0NvZGVQb2ludCgwKSkpcmV0dXJuIHRoaXMuY29uc3VtZUJhZFVybFJlbW5hbnRzKCkseEE7QS5wdXNoKHRoaXMuY29uc3VtZUVzY2FwZWRDb2RlUG9pbnQoKSl9ZWxzZSBBLnB1c2gocil9fSxYQS5wcm90b3R5cGUuY29uc3VtZVdoaXRlU3BhY2U9ZnVuY3Rpb24oKXtmb3IoO0NBKHRoaXMucGVla0NvZGVQb2ludCgwKSk7KXRoaXMuY29uc3VtZUNvZGVQb2ludCgpfSxYQS5wcm90b3R5cGUuY29uc3VtZUJhZFVybFJlbW5hbnRzPWZ1bmN0aW9uKCl7Zm9yKDs7KXt2YXIgQT10aGlzLmNvbnN1bWVDb2RlUG9pbnQoKTtpZig0MT09PUF8fC0xPT09QSlyZXR1cm47aEEoQSx0aGlzLnBlZWtDb2RlUG9pbnQoMCkpJiZ0aGlzLmNvbnN1bWVFc2NhcGVkQ29kZVBvaW50KCl9fSxYQS5wcm90b3R5cGUuY29uc3VtZVN0cmluZ1NsaWNlPWZ1bmN0aW9uKEEpe2Zvcih2YXIgZT0iIjswPEE7KXt2YXIgdD1NYXRoLm1pbig1ZTQsQSk7ZSs9Zy5hcHBseSh2b2lkIDAsdGhpcy5fdmFsdWUuc3BsaWNlKDAsdCkpLEEtPXR9cmV0dXJuIHRoaXMuX3ZhbHVlLnNoaWZ0KCksZX0sWEEucHJvdG90eXBlLmNvbnN1bWVTdHJpbmdUb2tlbj1mdW5jdGlvbihBKXtmb3IodmFyIGU9IiIsdD0wOzspe3ZhciByLEI9dGhpcy5fdmFsdWVbdF07aWYoLTE9PT1CfHx2b2lkIDA9PT1CfHxCPT09QSlyZXR1cm57dHlwZTowLHZhbHVlOmUrPXRoaXMuY29uc3VtZVN0cmluZ1NsaWNlKHQpfTtpZigxMD09PUIpcmV0dXJuIHRoaXMuX3ZhbHVlLnNwbGljZSgwLHQpLE1BOzkyIT09Qnx8LTEhPT0ocj10aGlzLl92YWx1ZVt0KzFdKSYmdm9pZCAwIT09ciYmKDEwPT09cj8oZSs9dGhpcy5jb25zdW1lU3RyaW5nU2xpY2UodCksdD0tMSx0aGlzLl92YWx1ZS5zaGlmdCgpKTpoQShCLHIpJiYoZSs9dGhpcy5jb25zdW1lU3RyaW5nU2xpY2UodCksZSs9Zyh0aGlzLmNvbnN1bWVFc2NhcGVkQ29kZVBvaW50KCkpLHQ9LTEpKSx0Kyt9fSxYQS5wcm90b3R5cGUuY29uc3VtZU51bWJlcj1mdW5jdGlvbigpe3ZhciBBPVtdLGU9NDtmb3IoNDMhPT0odD10aGlzLnBlZWtDb2RlUG9pbnQoMCkpJiY0NSE9PXR8fEEucHVzaCh0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKSk7VUEodGhpcy5wZWVrQ29kZVBvaW50KDApKTspQS5wdXNoKHRoaXMuY29uc3VtZUNvZGVQb2ludCgpKTt2YXIgdD10aGlzLnBlZWtDb2RlUG9pbnQoMCkscj10aGlzLnBlZWtDb2RlUG9pbnQoMSk7aWYoNDY9PT10JiZVQShyKSlmb3IoQS5wdXNoKHRoaXMuY29uc3VtZUNvZGVQb2ludCgpLHRoaXMuY29uc3VtZUNvZGVQb2ludCgpKSxlPTg7VUEodGhpcy5wZWVrQ29kZVBvaW50KDApKTspQS5wdXNoKHRoaXMuY29uc3VtZUNvZGVQb2ludCgpKTt0PXRoaXMucGVla0NvZGVQb2ludCgwKTt2YXIgcj10aGlzLnBlZWtDb2RlUG9pbnQoMSksQj10aGlzLnBlZWtDb2RlUG9pbnQoMik7aWYoKDY5PT09dHx8MTAxPT09dCkmJigoNDM9PT1yfHw0NT09PXIpJiZVQShCKXx8VUEocikpKWZvcihBLnB1c2godGhpcy5jb25zdW1lQ29kZVBvaW50KCksdGhpcy5jb25zdW1lQ29kZVBvaW50KCkpLGU9ODtVQSh0aGlzLnBlZWtDb2RlUG9pbnQoMCkpOylBLnB1c2godGhpcy5jb25zdW1lQ29kZVBvaW50KCkpO3JldHVybltmdW5jdGlvbihBKXt2YXIgZT0wLHQ9MTs0MyE9PUFbZV0mJjQ1IT09QVtlXXx8KDQ1PT09QVtlXSYmKHQ9LTEpLGUrKyk7Zm9yKHZhciByPVtdO1VBKEFbZV0pOylyLnB1c2goQVtlKytdKTt2YXIgQj1yLmxlbmd0aD9wYXJzZUludChnLmFwcGx5KHZvaWQgMCxyKSwxMCk6MDs0Nj09PUFbZV0mJmUrKztmb3IodmFyIG49W107VUEoQVtlXSk7KW4ucHVzaChBW2UrK10pO3ZhciBzPW4ubGVuZ3RoLG89cz9wYXJzZUludChnLmFwcGx5KHZvaWQgMCxuKSwxMCk6MDs2OSE9PUFbZV0mJjEwMSE9PUFbZV18fGUrKzt2YXIgaT0xOzQzIT09QVtlXSYmNDUhPT1BW2VdfHwoNDU9PT1BW2VdJiYoaT0tMSksZSsrKTtmb3IodmFyIFE9W107VUEoQVtlXSk7KVEucHVzaChBW2UrK10pO3ZhciBjPVEubGVuZ3RoP3BhcnNlSW50KGcuYXBwbHkodm9pZCAwLFEpLDEwKTowO3JldHVybiB0KihCK28qTWF0aC5wb3coMTAsLXMpKSpNYXRoLnBvdygxMCxpKmMpfShBKSxlXX0sWEEucHJvdG90eXBlLmNvbnN1bWVOdW1lcmljVG9rZW49ZnVuY3Rpb24oKXt2YXIgQT10aGlzLmNvbnN1bWVOdW1iZXIoKSxlPUFbMF0sdD1BWzFdLHI9dGhpcy5wZWVrQ29kZVBvaW50KDApLEI9dGhpcy5wZWVrQ29kZVBvaW50KDEpLEE9dGhpcy5wZWVrQ29kZVBvaW50KDIpO3JldHVybiBkQShyLEIsQSk/e3R5cGU6MTUsbnVtYmVyOmUsZmxhZ3M6dCx1bml0OnRoaXMuY29uc3VtZU5hbWUoKX06Mzc9PT1yPyh0aGlzLmNvbnN1bWVDb2RlUG9pbnQoKSx7dHlwZToxNixudW1iZXI6ZSxmbGFnczp0fSk6e3R5cGU6MTcsbnVtYmVyOmUsZmxhZ3M6dH19LFhBLnByb3RvdHlwZS5jb25zdW1lRXNjYXBlZENvZGVQb2ludD1mdW5jdGlvbigpe3ZhciBBLGU9dGhpcy5jb25zdW1lQ29kZVBvaW50KCk7aWYobEEoZSkpe2Zvcih2YXIgdD1nKGUpO2xBKHRoaXMucGVla0NvZGVQb2ludCgwKSkmJnQubGVuZ3RoPDY7KXQrPWcodGhpcy5jb25zdW1lQ29kZVBvaW50KCkpO0NBKHRoaXMucGVla0NvZGVQb2ludCgwKSkmJnRoaXMuY29uc3VtZUNvZGVQb2ludCgpO3ZhciByPXBhcnNlSW50KHQsMTYpO3JldHVybiAwPT09cnx8NTUyOTY8PShBPXIpJiZBPD01NzM0M3x8MTExNDExMTxyPzY1NTMzOnJ9cmV0dXJuLTE9PT1lPzY1NTMzOmV9LFhBLnByb3RvdHlwZS5jb25zdW1lTmFtZT1mdW5jdGlvbigpe2Zvcih2YXIgQT0iIjs7KXt2YXIgZT10aGlzLmNvbnN1bWVDb2RlUG9pbnQoKTtpZihGQShlKSlBKz1nKGUpO2Vsc2V7aWYoIWhBKGUsdGhpcy5wZWVrQ29kZVBvaW50KDApKSlyZXR1cm4gdGhpcy5yZWNvbnN1bWVDb2RlUG9pbnQoZSksQTtBKz1nKHRoaXMuY29uc3VtZUVzY2FwZWRDb2RlUG9pbnQoKSl9fX0sWEEpO2Z1bmN0aW9uIFhBKCl7dGhpcy5fdmFsdWU9W119dmFyIEpBPShZQS5jcmVhdGU9ZnVuY3Rpb24oQSl7dmFyIGU9bmV3IFBBO3JldHVybiBlLndyaXRlKEEpLG5ldyBZQShlLnJlYWQoKSl9LFlBLnBhcnNlVmFsdWU9ZnVuY3Rpb24oQSl7cmV0dXJuIFlBLmNyZWF0ZShBKS5wYXJzZUNvbXBvbmVudFZhbHVlKCl9LFlBLnBhcnNlVmFsdWVzPWZ1bmN0aW9uKEEpe3JldHVybiBZQS5jcmVhdGUoQSkucGFyc2VDb21wb25lbnRWYWx1ZXMoKX0sWUEucHJvdG90eXBlLnBhcnNlQ29tcG9uZW50VmFsdWU9ZnVuY3Rpb24oKXtmb3IodmFyIEE9dGhpcy5jb25zdW1lVG9rZW4oKTszMT09PUEudHlwZTspQT10aGlzLmNvbnN1bWVUb2tlbigpO2lmKDMyPT09QS50eXBlKXRocm93IG5ldyBTeW50YXhFcnJvcigiRXJyb3IgcGFyc2luZyBDU1MgY29tcG9uZW50IHZhbHVlLCB1bmV4cGVjdGVkIEVPRiIpO3RoaXMucmVjb25zdW1lVG9rZW4oQSk7Zm9yKHZhciBlPXRoaXMuY29uc3VtZUNvbXBvbmVudFZhbHVlKCk7MzE9PT0oQT10aGlzLmNvbnN1bWVUb2tlbigpKS50eXBlOyk7aWYoMzI9PT1BLnR5cGUpcmV0dXJuIGU7dGhyb3cgbmV3IFN5bnRheEVycm9yKCJFcnJvciBwYXJzaW5nIENTUyBjb21wb25lbnQgdmFsdWUsIG11bHRpcGxlIHZhbHVlcyBmb3VuZCB3aGVuIGV4cGVjdGluZyBvbmx5IG9uZSIpfSxZQS5wcm90b3R5cGUucGFyc2VDb21wb25lbnRWYWx1ZXM9ZnVuY3Rpb24oKXtmb3IodmFyIEE9W107Oyl7dmFyIGU9dGhpcy5jb25zdW1lQ29tcG9uZW50VmFsdWUoKTtpZigzMj09PWUudHlwZSlyZXR1cm4gQTtBLnB1c2goZSksQS5wdXNoKCl9fSxZQS5wcm90b3R5cGUuY29uc3VtZUNvbXBvbmVudFZhbHVlPWZ1bmN0aW9uKCl7dmFyIEE9dGhpcy5jb25zdW1lVG9rZW4oKTtzd2l0Y2goQS50eXBlKXtjYXNlIDExOmNhc2UgMjg6Y2FzZSAyOnJldHVybiB0aGlzLmNvbnN1bWVTaW1wbGVCbG9jayhBLnR5cGUpO2Nhc2UgMTk6cmV0dXJuIHRoaXMuY29uc3VtZUZ1bmN0aW9uKEEpfXJldHVybiBBfSxZQS5wcm90b3R5cGUuY29uc3VtZVNpbXBsZUJsb2NrPWZ1bmN0aW9uKEEpe2Zvcih2YXIgZT17dHlwZTpBLHZhbHVlczpbXX0sdD10aGlzLmNvbnN1bWVUb2tlbigpOzspe2lmKDMyPT09dC50eXBlfHxjZSh0LEEpKXJldHVybiBlO3RoaXMucmVjb25zdW1lVG9rZW4odCksZS52YWx1ZXMucHVzaCh0aGlzLmNvbnN1bWVDb21wb25lbnRWYWx1ZSgpKSx0PXRoaXMuY29uc3VtZVRva2VuKCl9fSxZQS5wcm90b3R5cGUuY29uc3VtZUZ1bmN0aW9uPWZ1bmN0aW9uKEEpe2Zvcih2YXIgZT17bmFtZTpBLnZhbHVlLHZhbHVlczpbXSx0eXBlOjE4fTs7KXt2YXIgdD10aGlzLmNvbnN1bWVUb2tlbigpO2lmKDMyPT09dC50eXBlfHwzPT09dC50eXBlKXJldHVybiBlO3RoaXMucmVjb25zdW1lVG9rZW4odCksZS52YWx1ZXMucHVzaCh0aGlzLmNvbnN1bWVDb21wb25lbnRWYWx1ZSgpKX19LFlBLnByb3RvdHlwZS5jb25zdW1lVG9rZW49ZnVuY3Rpb24oKXt2YXIgQT10aGlzLl90b2tlbnMuc2hpZnQoKTtyZXR1cm4gdm9pZCAwPT09QT9OQTpBfSxZQS5wcm90b3R5cGUucmVjb25zdW1lVG9rZW49ZnVuY3Rpb24oQSl7dGhpcy5fdG9rZW5zLnVuc2hpZnQoQSl9LFlBKTtmdW5jdGlvbiBZQShBKXt0aGlzLl90b2tlbnM9QX1mdW5jdGlvbiBXQShBKXtyZXR1cm4gMTU9PT1BLnR5cGV9ZnVuY3Rpb24gWkEoQSl7cmV0dXJuIDE3PT09QS50eXBlfWZ1bmN0aW9uIF9BKEEpe3JldHVybiAyMD09PUEudHlwZX1mdW5jdGlvbiBxQShBKXtyZXR1cm4gMD09PUEudHlwZX1mdW5jdGlvbiBqQShBLGUpe3JldHVybiBfQShBKSYmQS52YWx1ZT09PWV9ZnVuY3Rpb24gekEoQSl7cmV0dXJuIDMxIT09QS50eXBlfWZ1bmN0aW9uICRBKEEpe3JldHVybiAzMSE9PUEudHlwZSYmNCE9PUEudHlwZX1mdW5jdGlvbiBBZShBKXt2YXIgZT1bXSx0PVtdO3JldHVybiBBLmZvckVhY2goZnVuY3Rpb24oQSl7aWYoND09PUEudHlwZSl7aWYoMD09PXQubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiRXJyb3IgcGFyc2luZyBmdW5jdGlvbiBhcmdzLCB6ZXJvIHRva2VucyBmb3IgYXJnIik7cmV0dXJuIGUucHVzaCh0KSx2b2lkKHQ9W10pfTMxIT09QS50eXBlJiZ0LnB1c2goQSl9KSx0Lmxlbmd0aCYmZS5wdXNoKHQpLGV9ZnVuY3Rpb24gZWUoQSl7cmV0dXJuIDE3PT09QS50eXBlfHwxNT09PUEudHlwZX1mdW5jdGlvbiB0ZShBKXtyZXR1cm4gMTY9PT1BLnR5cGV8fGVlKEEpfWZ1bmN0aW9uIHJlKEEpe3JldHVybiAxPEEubGVuZ3RoP1tBWzBdLEFbMV1dOltBWzBdXX1mdW5jdGlvbiBCZShBLGUsdCl7dmFyIHI9QVswXSxBPUFbMV07cmV0dXJuW1VlKHIsZSksVWUodm9pZCAwIT09QT9BOnIsdCldfWZ1bmN0aW9uIG5lKEEpe3JldHVybiAxNT09PUEudHlwZSYmKCJkZWciPT09QS51bml0fHwiZ3JhZCI9PT1BLnVuaXR8fCJyYWQiPT09QS51bml0fHwidHVybiI9PT1BLnVuaXQpfWZ1bmN0aW9uIHNlKEEpe3N3aXRjaChBLmZpbHRlcihfQSkubWFwKGZ1bmN0aW9uKEEpe3JldHVybiBBLnZhbHVlfSkuam9pbigiICIpKXtjYXNlInRvIGJvdHRvbSByaWdodCI6Y2FzZSJ0byByaWdodCBib3R0b20iOmNhc2UibGVmdCB0b3AiOmNhc2UidG9wIGxlZnQiOnJldHVyblthZSxhZV07Y2FzZSJ0byB0b3AiOmNhc2UiYm90dG9tIjpyZXR1cm4gQ2UoMCk7Y2FzZSJ0byBib3R0b20gbGVmdCI6Y2FzZSJ0byBsZWZ0IGJvdHRvbSI6Y2FzZSJyaWdodCB0b3AiOmNhc2UidG9wIHJpZ2h0IjpyZXR1cm5bYWUsd2VdO2Nhc2UidG8gcmlnaHQiOmNhc2UibGVmdCI6cmV0dXJuIENlKDkwKTtjYXNlInRvIHRvcCBsZWZ0IjpjYXNlInRvIGxlZnQgdG9wIjpjYXNlInJpZ2h0IGJvdHRvbSI6Y2FzZSJib3R0b20gcmlnaHQiOnJldHVyblt3ZSx3ZV07Y2FzZSJ0byBib3R0b20iOmNhc2UidG9wIjpyZXR1cm4gQ2UoMTgwKTtjYXNlInRvIHRvcCByaWdodCI6Y2FzZSJ0byByaWdodCB0b3AiOmNhc2UibGVmdCBib3R0b20iOmNhc2UiYm90dG9tIGxlZnQiOnJldHVyblt3ZSxhZV07Y2FzZSJ0byBsZWZ0IjpjYXNlInJpZ2h0IjpyZXR1cm4gQ2UoMjcwKX1yZXR1cm4gMH1mdW5jdGlvbiBvZShBKXtyZXR1cm4gMD09KDI1NSZBKX1mdW5jdGlvbiBpZShBKXt2YXIgZT0yNTUmQSx0PTI1NSZBPj44LHI9MjU1JkE+PjE2LEE9MjU1JkE+PjI0O3JldHVybiBlPDI1NT8icmdiYSgiK0ErIiwiK3IrIiwiK3QrIiwiK2UvMjU1KyIpIjoicmdiKCIrQSsiLCIrcisiLCIrdCsiKSJ9ZnVuY3Rpb24gUWUoQSxlKXtpZigxNz09PUEudHlwZSlyZXR1cm4gQS5udW1iZXI7aWYoMTYhPT1BLnR5cGUpcmV0dXJuIDA7dmFyIHQ9Mz09PWU/MToyNTU7cmV0dXJuIDM9PT1lP0EubnVtYmVyLzEwMCp0Ok1hdGgucm91bmQoQS5udW1iZXIvMTAwKnQpfXZhciBjZT1mdW5jdGlvbihBLGUpe3JldHVybiAxMT09PWUmJjEyPT09QS50eXBlfHwoMjg9PT1lJiYyOT09PUEudHlwZXx8Mj09PWUmJjM9PT1BLnR5cGUpfSxhZT17dHlwZToxNyxudW1iZXI6MCxmbGFnczo0fSxnZT17dHlwZToxNixudW1iZXI6NTAsZmxhZ3M6NH0sd2U9e3R5cGU6MTYsbnVtYmVyOjEwMCxmbGFnczo0fSxVZT1mdW5jdGlvbihBLGUpe2lmKDE2PT09QS50eXBlKXJldHVybiBBLm51bWJlci8xMDAqZTtpZihXQShBKSlzd2l0Y2goQS51bml0KXtjYXNlInJlbSI6Y2FzZSJlbSI6cmV0dXJuIDE2KkEubnVtYmVyO2RlZmF1bHQ6cmV0dXJuIEEubnVtYmVyfXJldHVybiBBLm51bWJlcn0sbGU9ZnVuY3Rpb24oQSxlKXtpZigxNT09PWUudHlwZSlzd2l0Y2goZS51bml0KXtjYXNlImRlZyI6cmV0dXJuIE1hdGguUEkqZS5udW1iZXIvMTgwO2Nhc2UiZ3JhZCI6cmV0dXJuIE1hdGguUEkvMjAwKmUubnVtYmVyO2Nhc2UicmFkIjpyZXR1cm4gZS5udW1iZXI7Y2FzZSJ0dXJuIjpyZXR1cm4gMipNYXRoLlBJKmUubnVtYmVyfXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgYW5nbGUgdHlwZSIpfSxDZT1mdW5jdGlvbihBKXtyZXR1cm4gTWF0aC5QSSpBLzE4MH0sdWU9ZnVuY3Rpb24oQSxlKXtpZigxOD09PWUudHlwZSl7dmFyIHQ9bWVbZS5uYW1lXTtpZih2b2lkIDA9PT10KXRocm93IG5ldyBFcnJvcignQXR0ZW1wdGluZyB0byBwYXJzZSBhbiB1bnN1cHBvcnRlZCBjb2xvciBmdW5jdGlvbiAiJytlLm5hbWUrJyInKTtyZXR1cm4gdChBLGUudmFsdWVzKX1pZig1PT09ZS50eXBlKXtpZigzPT09ZS52YWx1ZS5sZW5ndGgpe3ZhciByPWUudmFsdWUuc3Vic3RyaW5nKDAsMSksQj1lLnZhbHVlLnN1YnN0cmluZygxLDIpLG49ZS52YWx1ZS5zdWJzdHJpbmcoMiwzKTtyZXR1cm4gRmUocGFyc2VJbnQocityLDE2KSxwYXJzZUludChCK0IsMTYpLHBhcnNlSW50KG4rbiwxNiksMSl9aWYoND09PWUudmFsdWUubGVuZ3RoKXt2YXIgcj1lLnZhbHVlLnN1YnN0cmluZygwLDEpLEI9ZS52YWx1ZS5zdWJzdHJpbmcoMSwyKSxuPWUudmFsdWUuc3Vic3RyaW5nKDIsMykscz1lLnZhbHVlLnN1YnN0cmluZygzLDQpO3JldHVybiBGZShwYXJzZUludChyK3IsMTYpLHBhcnNlSW50KEIrQiwxNikscGFyc2VJbnQobituLDE2KSxwYXJzZUludChzK3MsMTYpLzI1NSl9aWYoNj09PWUudmFsdWUubGVuZ3RoKXtyPWUudmFsdWUuc3Vic3RyaW5nKDAsMiksQj1lLnZhbHVlLnN1YnN0cmluZygyLDQpLG49ZS52YWx1ZS5zdWJzdHJpbmcoNCw2KTtyZXR1cm4gRmUocGFyc2VJbnQociwxNikscGFyc2VJbnQoQiwxNikscGFyc2VJbnQobiwxNiksMSl9aWYoOD09PWUudmFsdWUubGVuZ3RoKXtyPWUudmFsdWUuc3Vic3RyaW5nKDAsMiksQj1lLnZhbHVlLnN1YnN0cmluZygyLDQpLG49ZS52YWx1ZS5zdWJzdHJpbmcoNCw2KSxzPWUudmFsdWUuc3Vic3RyaW5nKDYsOCk7cmV0dXJuIEZlKHBhcnNlSW50KHIsMTYpLHBhcnNlSW50KEIsMTYpLHBhcnNlSW50KG4sMTYpLHBhcnNlSW50KHMsMTYpLzI1NSl9fWlmKDIwPT09ZS50eXBlKXtlPUxlW2UudmFsdWUudG9VcHBlckNhc2UoKV07aWYodm9pZCAwIT09ZSlyZXR1cm4gZX1yZXR1cm4gTGUuVFJBTlNQQVJFTlR9LEZlPWZ1bmN0aW9uKEEsZSx0LHIpe3JldHVybihBPDwyNHxlPDwxNnx0PDw4fE1hdGgucm91bmQoMjU1KnIpPDwwKT4+PjB9LGhlPWZ1bmN0aW9uKEEsZSl7ZT1lLmZpbHRlcigkQSk7aWYoMz09PWUubGVuZ3RoKXt2YXIgdD1lLm1hcChRZSkscj10WzBdLEI9dFsxXSx0PXRbMl07cmV0dXJuIEZlKHIsQix0LDEpfWlmKDQhPT1lLmxlbmd0aClyZXR1cm4gMDtlPWUubWFwKFFlKSxyPWVbMF0sQj1lWzFdLHQ9ZVsyXSxlPWVbM107cmV0dXJuIEZlKHIsQix0LGUpfTtmdW5jdGlvbiBkZShBLGUsdCl7cmV0dXJuIHQ8MCYmKHQrPTEpLDE8PXQmJi0tdCx0PDEvNj8oZS1BKSp0KjYrQTp0PC41P2U6dDwyLzM/NiooZS1BKSooMi8zLXQpK0E6QX1mdW5jdGlvbiBmZShBLGUpe3JldHVybiB1ZShBLEpBLmNyZWF0ZShlKS5wYXJzZUNvbXBvbmVudFZhbHVlKCkpfWZ1bmN0aW9uIEhlKEEsZSl7cmV0dXJuIEE9dWUoQSxlWzBdKSwoZT1lWzFdKSYmdGUoZSk/e2NvbG9yOkEsc3RvcDplfTp7Y29sb3I6QSxzdG9wOm51bGx9fWZ1bmN0aW9uIHBlKEEsdCl7dmFyIGU9QVswXSxyPUFbQS5sZW5ndGgtMV07bnVsbD09PWUuc3RvcCYmKGUuc3RvcD1hZSksbnVsbD09PXIuc3RvcCYmKHIuc3RvcD13ZSk7Zm9yKHZhciBCPVtdLG49MCxzPTA7czxBLmxlbmd0aDtzKyspe3ZhciBvPUFbc10uc3RvcDtudWxsIT09bz8objwobz1VZShvLHQpKT9CLnB1c2gobyk6Qi5wdXNoKG4pLG49byk6Qi5wdXNoKG51bGwpfWZvcih2YXIgaT1udWxsLHM9MDtzPEIubGVuZ3RoO3MrKyl7dmFyIFE9QltzXTtpZihudWxsPT09USludWxsPT09aSYmKGk9cyk7ZWxzZSBpZihudWxsIT09aSl7Zm9yKHZhciBjPXMtaSxhPShRLUJbaS0xXSkvKDErYyksZz0xO2c8PWM7ZysrKUJbaStnLTFdPWEqZztpPW51bGx9fXJldHVybiBBLm1hcChmdW5jdGlvbihBLGUpe3JldHVybntjb2xvcjpBLmNvbG9yLHN0b3A6TWF0aC5tYXgoTWF0aC5taW4oMSxCW2VdL3QpLDApfX0pfWZ1bmN0aW9uIEVlKEEsZSx0KXt2YXIgcj0ibnVtYmVyIj09dHlwZW9mIEE/QToocz1lLzIscj0obj10KS8yLHM9VWUoKEI9QSlbMF0sZSktcyxuPXItVWUoQlsxXSxuKSwoTWF0aC5hdGFuMihuLHMpKzIqTWF0aC5QSSklKDIqTWF0aC5QSSkpLEI9TWF0aC5hYnMoZSpNYXRoLnNpbihyKSkrTWF0aC5hYnModCpNYXRoLmNvcyhyKSksbj1lLzIscz10LzIsZT1CLzIsdD1NYXRoLnNpbihyLU1hdGguUEkvMikqZSxlPU1hdGguY29zKHItTWF0aC5QSS8yKSplO3JldHVybltCLG4tZSxuK2Uscy10LHMrdF19ZnVuY3Rpb24gSWUoQSxlKXtyZXR1cm4gTWF0aC5zcXJ0KEEqQStlKmUpfWZ1bmN0aW9uIHllKEEsZSxCLG4scyl7cmV0dXJuW1swLDBdLFswLGVdLFtBLDBdLFtBLGVdXS5yZWR1Y2UoZnVuY3Rpb24oQSxlKXt2YXIgdD1lWzBdLHI9ZVsxXSxyPUllKEItdCxuLXIpO3JldHVybihzP3I8QS5vcHRpbXVtRGlzdGFuY2U6cj5BLm9wdGltdW1EaXN0YW5jZSk/e29wdGltdW1Db3JuZXI6ZSxvcHRpbXVtRGlzdGFuY2U6cn06QX0se29wdGltdW1EaXN0YW5jZTpzPzEvMDotMS8wLG9wdGltdW1Db3JuZXI6bnVsbH0pLm9wdGltdW1Db3JuZXJ9dmFyIEtlPWZ1bmN0aW9uKEEsZSl7dmFyIHQ9ZS5maWx0ZXIoJEEpLHI9dFswXSxCPXRbMV0sbj10WzJdLGU9dFszXSx0PSgxNz09PXIudHlwZT9DZShyLm51bWJlcik6bGUoQSxyKSkvKDIqTWF0aC5QSSksQT10ZShCKT9CLm51bWJlci8xMDA6MCxyPXRlKG4pP24ubnVtYmVyLzEwMDowLEI9dm9pZCAwIT09ZSYmdGUoZSk/VWUoZSwxKToxO2lmKDA9PUEpcmV0dXJuIEZlKDI1NSpyLDI1NSpyLDI1NSpyLDEpO249cjw9LjU/ciooMStBKTpyK0EtcipBLGU9MipyLW4sQT1kZShlLG4sdCsxLzMpLHI9ZGUoZSxuLHQpLHQ9ZGUoZSxuLHQtMS8zKTtyZXR1cm4gRmUoMjU1KkEsMjU1KnIsMjU1KnQsQil9LG1lPXtoc2w6S2UsaHNsYTpLZSxyZ2I6aGUscmdiYTpoZX0sTGU9e0FMSUNFQkxVRTo0MDQyODUwMzAzLEFOVElRVUVXSElURTo0MjA5NzYwMjU1LEFRVUE6MTY3NzcyMTUsQVFVQU1BUklORToyMTQ3NDcyNjM5LEFaVVJFOjQwNDMzMDkwNTUsQkVJR0U6NDEyNjUzMDgxNSxCSVNRVUU6NDI5MzE4MjcxOSxCTEFDSzoyNTUsQkxBTkNIRURBTE1PTkQ6NDI5MzY0Mzc3NSxCTFVFOjY1NTM1LEJMVUVWSU9MRVQ6MjMxODEzMTk2NyxCUk9XTjoyNzcxMDA0MTU5LEJVUkxZV09PRDozNzM2NjM1MzkxLENBREVUQkxVRToxNjA0MjMxNDIzLENIQVJUUkVVU0U6MjE0NzQxODM2NyxDSE9DT0xBVEU6MzUzMDEwNDU3NSxDT1JBTDo0Mjg2NTMzODg3LENPUk5GTE9XRVJCTFVFOjE2ODc1NDczOTEsQ09STlNJTEs6NDI5NDQ5OTU4MyxDUklNU09OOjM2OTIzMTM4NTUsQ1lBTjoxNjc3NzIxNSxEQVJLQkxVRTozNTgzOSxEQVJLQ1lBTjo5MTQ1MzQzLERBUktHT0xERU5ST0Q6MzA5NTgzNzY5NSxEQVJLR1JBWToyODQ2NDY4NjA3LERBUktHUkVFTjo2NTUzODU1LERBUktHUkVZOjI4NDY0Njg2MDcsREFSS0tIQUtJOjMxODI5MTQ1NTksREFSS01BR0VOVEE6MjMzMjA2ODg2MyxEQVJLT0xJVkVHUkVFTjoxNDMzMDg3OTk5LERBUktPUkFOR0U6NDI4NzM2NTM3NSxEQVJLT1JDSElEOjI1NzAyNDMzMjcsREFSS1JFRDoyMzMyMDMzMjc5LERBUktTQUxNT046MzkxODk1MzIxNSxEQVJLU0VBR1JFRU46MjQxMTQ5OTUxOSxEQVJLU0xBVEVCTFVFOjEyMTE5OTMwODcsREFSS1NMQVRFR1JBWTo3OTM3MjY5NzUsREFSS1NMQVRFR1JFWTo3OTM3MjY5NzUsREFSS1RVUlFVT0lTRToxMzU1NDE3NSxEQVJLVklPTEVUOjI0ODMwODIyMzksREVFUFBJTks6NDI3OTUzODY4NyxERUVQU0tZQkxVRToxMjU4MjkxMSxESU1HUkFZOjE3Njg1MTYwOTUsRElNR1JFWToxNzY4NTE2MDk1LERPREdFUkJMVUU6NTEyODE5MTk5LEZJUkVCUklDSzoyOTg4NTgxNjMxLEZMT1JBTFdISVRFOjQyOTQ2MzU3NzUsRk9SRVNUR1JFRU46NTc5NTQzODA3LEZVQ0hTSUE6NDI3ODI1NTYxNSxHQUlOU0JPUk86MzcwNTQ2MjAxNSxHSE9TVFdISVRFOjQxNzcwNjgwMzEsR09MRDo0MjkyMjgwNTc1LEdPTERFTlJPRDozNjY4MjU0OTc1LEdSQVk6MjE1NTkwNTI3OSxHUkVFTjo4Mzg4ODYzLEdSRUVOWUVMTE9XOjI5MTkxODIzMzUsR1JFWToyMTU1OTA1Mjc5LEhPTkVZREVXOjQwNDMzMDUyMTUsSE9UUElOSzo0Mjg1MTE3Njk1LElORElBTlJFRDozNDQ1MzgyMzk5LElORElHTzoxMjU4MzI0NzM1LElWT1JZOjQyOTQ5NjM0NTUsS0hBS0k6NDA0MTY0MTIxNSxMQVZFTkRFUjozODczODk3MjE1LExBVkVOREVSQkxVU0g6NDI5Mzk4MTY5NSxMQVdOR1JFRU46MjA5Njg5MDExMSxMRU1PTkNISUZGT046NDI5NDYyNjgxNSxMSUdIVEJMVUU6MjkxNjY3MzI3OSxMSUdIVENPUkFMOjQwMzQ5NTM0NzEsTElHSFRDWUFOOjM3NzQ4NzM1OTksTElHSFRHT0xERU5ST0RZRUxMT1c6NDIxMDc0MjAxNSxMSUdIVEdSQVk6MzU1Mzg3NDk0MyxMSUdIVEdSRUVOOjI0MzE1NTM3OTEsTElHSFRHUkVZOjM1NTM4NzQ5NDMsTElHSFRQSU5LOjQyOTAxNjcyOTUsTElHSFRTQUxNT046NDI4ODcwNzMyNyxMSUdIVFNFQUdSRUVOOjU0ODU4MDA5NSxMSUdIVFNLWUJMVUU6MjI3ODQ4ODgzMSxMSUdIVFNMQVRFR1JBWToyMDA1NDQxMDIzLExJR0hUU0xBVEVHUkVZOjIwMDU0NDEwMjMsTElHSFRTVEVFTEJMVUU6Mjk2NTY5MjE1OSxMSUdIVFlFTExPVzo0Mjk0OTU5MzU5LExJTUU6MTY3MTE5MzUsTElNRUdSRUVOOjg1MjMwODczNSxMSU5FTjo0MjEwMDkxNzc1LE1BR0VOVEE6NDI3ODI1NTYxNSxNQVJPT046MjE0NzQ4MzkwMyxNRURJVU1BUVVBTUFSSU5FOjE3MjQ3NTQ2ODcsTUVESVVNQkxVRTo1MjczNSxNRURJVU1PUkNISUQ6MzEyNjE4NzAwNyxNRURJVU1QVVJQTEU6MjQ3MzY0NzEwMyxNRURJVU1TRUFHUkVFTjoxMDE4MzkzMDg3LE1FRElVTVNMQVRFQkxVRToyMDcwNDc0NDk1LE1FRElVTVNQUklOR0dSRUVOOjE2NDIzNjc5LE1FRElVTVRVUlFVT0lTRToxMjIxNzA5MDU1LE1FRElVTVZJT0xFVFJFRDozMzQwMDc2NTQzLE1JRE5JR0hUQkxVRTo0MjEwOTc3MjcsTUlOVENSRUFNOjQxMjcxOTM4NTUsTUlTVFlST1NFOjQyOTMxOTAxNDMsTU9DQ0FTSU46NDI5MzE3ODg3OSxOQVZBSk9XSElURTo0MjkyNzgzNjE1LE5BVlk6MzMwMjMsT0xETEFDRTo0MjYwNzUxMTAzLE9MSVZFOjIxNTU4NzI1MTEsT0xJVkVEUkFCOjE4MDQ0Nzc0MzksT1JBTkdFOjQyODkwMDM3NzUsT1JBTkdFUkVEOjQyODI3MTIzMTksT1JDSElEOjM2NjQ4MjgxNTksUEFMRUdPTERFTlJPRDo0MDA4MjI1NTM1LFBBTEVHUkVFTjoyNTY2NjI1NTM1LFBBTEVUVVJRVU9JU0U6Mjk1MTY3MTU1MSxQQUxFVklPTEVUUkVEOjM2ODE1ODgyMjMsUEFQQVlBV0hJUDo0MjkzOTA3OTY3LFBFQUNIUFVGRjo0MjkyNTI0NTQzLFBFUlU6MzQ0ODA2MTk1MSxQSU5LOjQyOTA4MjUyMTUsUExVTTozNzE4MzA3MzI3LFBPV0RFUkJMVUU6Mjk2NzUyOTIxNSxQVVJQTEU6MjE0NzUxNjY3MSxSRUJFQ0NBUFVSUExFOjE3MTQ2NTc3OTEsUkVEOjQyNzgxOTAzMzUsUk9TWUJST1dOOjMxNjM1MjUxMTksUk9ZQUxCTFVFOjEwOTc0NTgxNzUsU0FERExFQlJPV046MjMzNjU2MDEyNyxTQUxNT046NDIwMjcyMjA0NyxTQU5EWUJST1dOOjQxMDQ0MTM0MzksU0VBR1JFRU46NzgwODgzOTY3LFNFQVNIRUxMOjQyOTQzMDc1ODMsU0lFTk5BOjI2ODk3NDAyODcsU0lMVkVSOjMyMzM4NTc3OTEsU0tZQkxVRToyMjc4NDg0OTkxLFNMQVRFQkxVRToxNzg0MzM1ODcxLFNMQVRFR1JBWToxODg3NDczOTE5LFNMQVRFR1JFWToxODg3NDczOTE5LFNOT1c6NDI5NDYzODMzNSxTUFJJTkdHUkVFTjoxNjc0NDQ0NyxTVEVFTEJMVUU6MTE4Mjk3MTEzNSxUQU46MzUzNTA0NzkzNSxURUFMOjg0MjE2MzEsVEhJU1RMRTozNjM2NDUxNTgzLFRPTUFUTzo0Mjg0Njk2NTc1LFRSQU5TUEFSRU5UOjAsVFVSUVVPSVNFOjEwODg0NzUzOTEsVklPTEVUOjQwMDE1NTgyNzEsV0hFQVQ6NDEyNTAxMjk5MSxXSElURTo0Mjk0OTY3Mjk1LFdISVRFU01PS0U6NDEyNjUzNzIxNSxZRUxMT1c6NDI5NDkwMjAxNSxZRUxMT1dHUkVFTjoyNTk3MTM5MTk5fSxiZT17bmFtZToiYmFja2dyb3VuZC1jbGlwIixpbml0aWFsVmFsdWU6ImJvcmRlci1ib3giLHByZWZpeDohMSx0eXBlOjEscGFyc2U6ZnVuY3Rpb24oQSxlKXtyZXR1cm4gZS5tYXAoZnVuY3Rpb24oQSl7aWYoX0EoQSkpc3dpdGNoKEEudmFsdWUpe2Nhc2UicGFkZGluZy1ib3giOnJldHVybiAxO2Nhc2UiY29udGVudC1ib3giOnJldHVybiAyfXJldHVybiAwfSl9fSxEZT17bmFtZToiYmFja2dyb3VuZC1jb2xvciIsaW5pdGlhbFZhbHVlOiJ0cmFuc3BhcmVudCIscHJlZml4OiExLHR5cGU6Myxmb3JtYXQ6ImNvbG9yIn0sS2U9ZnVuY3Rpb24odCxBKXt2YXIgcj1DZSgxODApLEI9W107cmV0dXJuIEFlKEEpLmZvckVhY2goZnVuY3Rpb24oQSxlKXtpZigwPT09ZSl7ZT1BWzBdO2lmKDIwPT09ZS50eXBlJiYtMSE9PVsidG9wIiwibGVmdCIsInJpZ2h0IiwiYm90dG9tIl0uaW5kZXhPZihlLnZhbHVlKSlyZXR1cm4gdm9pZChyPXNlKEEpKTtpZihuZShlKSlyZXR1cm4gdm9pZChyPShsZSh0LGUpK0NlKDI3MCkpJUNlKDM2MCkpfUE9SGUodCxBKTtCLnB1c2goQSl9KSx7YW5nbGU6cixzdG9wczpCLHR5cGU6MX19LHZlPSJjbG9zZXN0LXNpZGUiLHhlPSJmYXJ0aGVzdC1zaWRlIixNZT0iY2xvc2VzdC1jb3JuZXIiLFNlPSJmYXJ0aGVzdC1jb3JuZXIiLFRlPSJlbGxpcHNlIixHZT0iY29udGFpbiIsaGU9ZnVuY3Rpb24ocixBKXt2YXIgQj0wLG49MyxzPVtdLG89W107cmV0dXJuIEFlKEEpLmZvckVhY2goZnVuY3Rpb24oQSxlKXt2YXIgdD0hMDswPT09ZT90PUEucmVkdWNlKGZ1bmN0aW9uKEEsZSl7aWYoX0EoZSkpc3dpdGNoKGUudmFsdWUpe2Nhc2UiY2VudGVyIjpyZXR1cm4gby5wdXNoKGdlKSwhMTtjYXNlInRvcCI6Y2FzZSJsZWZ0IjpyZXR1cm4gby5wdXNoKGFlKSwhMTtjYXNlInJpZ2h0IjpjYXNlImJvdHRvbSI6cmV0dXJuIG8ucHVzaCh3ZSksITF9ZWxzZSBpZih0ZShlKXx8ZWUoZSkpcmV0dXJuIG8ucHVzaChlKSwhMTtyZXR1cm4gQX0sdCk6MT09PWUmJih0PUEucmVkdWNlKGZ1bmN0aW9uKEEsZSl7aWYoX0EoZSkpc3dpdGNoKGUudmFsdWUpe2Nhc2UiY2lyY2xlIjpyZXR1cm4gQj0wLCExO2Nhc2UgVGU6cmV0dXJuIShCPTEpO2Nhc2UgR2U6Y2FzZSB2ZTpyZXR1cm4gbj0wLCExO2Nhc2UgeGU6cmV0dXJuIShuPTEpO2Nhc2UgTWU6cmV0dXJuIShuPTIpO2Nhc2UiY292ZXIiOmNhc2UgU2U6cmV0dXJuIShuPTMpfWVsc2UgaWYoZWUoZSl8fHRlKGUpKXJldHVybihuPSFBcnJheS5pc0FycmF5KG4pP1tdOm4pLnB1c2goZSksITE7cmV0dXJuIEF9LHQpKSx0JiYoQT1IZShyLEEpLHMucHVzaChBKSl9KSx7c2l6ZTpuLHNoYXBlOkIsc3RvcHM6cyxwb3NpdGlvbjpvLHR5cGU6Mn19LE9lPWZ1bmN0aW9uKEEsZSl7aWYoMjI9PT1lLnR5cGUpe3ZhciB0PXt1cmw6ZS52YWx1ZSx0eXBlOjB9O3JldHVybiBBLmNhY2hlLmFkZEltYWdlKGUudmFsdWUpLHR9aWYoMTghPT1lLnR5cGUpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBpbWFnZSB0eXBlICIrZS50eXBlKTt0PWtlW2UubmFtZV07aWYodm9pZCAwPT09dCl0aHJvdyBuZXcgRXJyb3IoJ0F0dGVtcHRpbmcgdG8gcGFyc2UgYW4gdW5zdXBwb3J0ZWQgaW1hZ2UgZnVuY3Rpb24gIicrZS5uYW1lKyciJyk7cmV0dXJuIHQoQSxlLnZhbHVlcyl9O3ZhciBWZSxrZT17ImxpbmVhci1ncmFkaWVudCI6ZnVuY3Rpb24odCxBKXt2YXIgcj1DZSgxODApLEI9W107cmV0dXJuIEFlKEEpLmZvckVhY2goZnVuY3Rpb24oQSxlKXtpZigwPT09ZSl7ZT1BWzBdO2lmKDIwPT09ZS50eXBlJiYidG8iPT09ZS52YWx1ZSlyZXR1cm4gdm9pZChyPXNlKEEpKTtpZihuZShlKSlyZXR1cm4gdm9pZChyPWxlKHQsZSkpfUE9SGUodCxBKTtCLnB1c2goQSl9KSx7YW5nbGU6cixzdG9wczpCLHR5cGU6MX19LCItbW96LWxpbmVhci1ncmFkaWVudCI6S2UsIi1tcy1saW5lYXItZ3JhZGllbnQiOktlLCItby1saW5lYXItZ3JhZGllbnQiOktlLCItd2Via2l0LWxpbmVhci1ncmFkaWVudCI6S2UsInJhZGlhbC1ncmFkaWVudCI6ZnVuY3Rpb24oQixBKXt2YXIgbj0wLHM9MyxvPVtdLGk9W107cmV0dXJuIEFlKEEpLmZvckVhY2goZnVuY3Rpb24oQSxlKXt2YXIgdCxyPSEwOzA9PT1lJiYodD0hMSxyPUEucmVkdWNlKGZ1bmN0aW9uKEEsZSl7aWYodClpZihfQShlKSlzd2l0Y2goZS52YWx1ZSl7Y2FzZSJjZW50ZXIiOnJldHVybiBpLnB1c2goZ2UpLEE7Y2FzZSJ0b3AiOmNhc2UibGVmdCI6cmV0dXJuIGkucHVzaChhZSksQTtjYXNlInJpZ2h0IjpjYXNlImJvdHRvbSI6cmV0dXJuIGkucHVzaCh3ZSksQX1lbHNlKHRlKGUpfHxlZShlKSkmJmkucHVzaChlKTtlbHNlIGlmKF9BKGUpKXN3aXRjaChlLnZhbHVlKXtjYXNlImNpcmNsZSI6cmV0dXJuIG49MCwhMTtjYXNlIFRlOnJldHVybiEobj0xKTtjYXNlImF0IjpyZXR1cm4hKHQ9ITApO2Nhc2UgdmU6cmV0dXJuIHM9MCwhMTtjYXNlImNvdmVyIjpjYXNlIHhlOnJldHVybiEocz0xKTtjYXNlIEdlOmNhc2UgTWU6cmV0dXJuIShzPTIpO2Nhc2UgU2U6cmV0dXJuIShzPTMpfWVsc2UgaWYoZWUoZSl8fHRlKGUpKXJldHVybihzPSFBcnJheS5pc0FycmF5KHMpP1tdOnMpLnB1c2goZSksITE7cmV0dXJuIEF9LHIpKSxyJiYoQT1IZShCLEEpLG8ucHVzaChBKSl9KSx7c2l6ZTpzLHNoYXBlOm4sc3RvcHM6byxwb3NpdGlvbjppLHR5cGU6Mn19LCItbW96LXJhZGlhbC1ncmFkaWVudCI6aGUsIi1tcy1yYWRpYWwtZ3JhZGllbnQiOmhlLCItby1yYWRpYWwtZ3JhZGllbnQiOmhlLCItd2Via2l0LXJhZGlhbC1ncmFkaWVudCI6aGUsIi13ZWJraXQtZ3JhZGllbnQiOmZ1bmN0aW9uKHIsQSl7dmFyIGU9Q2UoMTgwKSxCPVtdLG49MTtyZXR1cm4gQWUoQSkuZm9yRWFjaChmdW5jdGlvbihBLGUpe3ZhciB0LEE9QVswXTtpZigwPT09ZSl7aWYoX0EoQSkmJiJsaW5lYXIiPT09QS52YWx1ZSlyZXR1cm4gdm9pZChuPTEpO2lmKF9BKEEpJiYicmFkaWFsIj09PUEudmFsdWUpcmV0dXJuIHZvaWQobj0yKX0xOD09PUEudHlwZSYmKCJmcm9tIj09PUEubmFtZT8odD11ZShyLEEudmFsdWVzWzBdKSxCLnB1c2goe3N0b3A6YWUsY29sb3I6dH0pKToidG8iPT09QS5uYW1lPyh0PXVlKHIsQS52YWx1ZXNbMF0pLEIucHVzaCh7c3RvcDp3ZSxjb2xvcjp0fSkpOiJjb2xvci1zdG9wIiE9PUEubmFtZXx8Mj09PShBPUEudmFsdWVzLmZpbHRlcigkQSkpLmxlbmd0aCYmKHQ9dWUocixBWzFdKSxBPUFbMF0sWkEoQSkmJkIucHVzaCh7c3RvcDp7dHlwZToxNixudW1iZXI6MTAwKkEubnVtYmVyLGZsYWdzOkEuZmxhZ3N9LGNvbG9yOnR9KSkpfSksMT09PW4/e2FuZ2xlOihlK0NlKDE4MCkpJUNlKDM2MCksc3RvcHM6Qix0eXBlOm59OntzaXplOjMsc2hhcGU6MCxzdG9wczpCLHBvc2l0aW9uOltdLHR5cGU6bn19fSxSZT17bmFtZToiYmFja2dyb3VuZC1pbWFnZSIsaW5pdGlhbFZhbHVlOiJub25lIix0eXBlOjEscHJlZml4OiExLHBhcnNlOmZ1bmN0aW9uKGUsQSl7aWYoMD09PUEubGVuZ3RoKXJldHVybltdO3ZhciB0PUFbMF07cmV0dXJuIDIwPT09dC50eXBlJiYibm9uZSI9PT10LnZhbHVlP1tdOkEuZmlsdGVyKGZ1bmN0aW9uKEEpe3JldHVybiAkQShBKSYmISgyMD09PShBPUEpLnR5cGUmJiJub25lIj09PUEudmFsdWV8fDE4PT09QS50eXBlJiYha2VbQS5uYW1lXSl9KS5tYXAoZnVuY3Rpb24oQSl7cmV0dXJuIE9lKGUsQSl9KX19LE5lPXtuYW1lOiJiYWNrZ3JvdW5kLW9yaWdpbiIsaW5pdGlhbFZhbHVlOiJib3JkZXItYm94IixwcmVmaXg6ITEsdHlwZToxLHBhcnNlOmZ1bmN0aW9uKEEsZSl7cmV0dXJuIGUubWFwKGZ1bmN0aW9uKEEpe2lmKF9BKEEpKXN3aXRjaChBLnZhbHVlKXtjYXNlInBhZGRpbmctYm94IjpyZXR1cm4gMTtjYXNlImNvbnRlbnQtYm94IjpyZXR1cm4gMn1yZXR1cm4gMH0pfX0sUGU9e25hbWU6ImJhY2tncm91bmQtcG9zaXRpb24iLGluaXRpYWxWYWx1ZToiMCUgMCUiLHR5cGU6MSxwcmVmaXg6ITEscGFyc2U6ZnVuY3Rpb24oQSxlKXtyZXR1cm4gQWUoZSkubWFwKGZ1bmN0aW9uKEEpe3JldHVybiBBLmZpbHRlcih0ZSl9KS5tYXAocmUpfX0sWGU9e25hbWU6ImJhY2tncm91bmQtcmVwZWF0Iixpbml0aWFsVmFsdWU6InJlcGVhdCIscHJlZml4OiExLHR5cGU6MSxwYXJzZTpmdW5jdGlvbihBLGUpe3JldHVybiBBZShlKS5tYXAoZnVuY3Rpb24oQSl7cmV0dXJuIEEuZmlsdGVyKF9BKS5tYXAoZnVuY3Rpb24oQSl7cmV0dXJuIEEudmFsdWV9KS5qb2luKCIgIil9KS5tYXAoSmUpfX0sSmU9ZnVuY3Rpb24oQSl7c3dpdGNoKEEpe2Nhc2Uibm8tcmVwZWF0IjpyZXR1cm4gMTtjYXNlInJlcGVhdC14IjpjYXNlInJlcGVhdCBuby1yZXBlYXQiOnJldHVybiAyO2Nhc2UicmVwZWF0LXkiOmNhc2Uibm8tcmVwZWF0IHJlcGVhdCI6cmV0dXJuIDM7ZGVmYXVsdDpyZXR1cm4gMH19OyhoZT1WZT1WZXx8e30pLkFVVE89ImF1dG8iLGhlLkNPTlRBSU49ImNvbnRhaW4iO2Z1bmN0aW9uIFllKEEsZSl7cmV0dXJuIF9BKEEpJiYibm9ybWFsIj09PUEudmFsdWU/MS4yKmU6MTc9PT1BLnR5cGU/ZSpBLm51bWJlcjp0ZShBKT9VZShBLGUpOmV9dmFyIFdlLFplLF9lPXtuYW1lOiJiYWNrZ3JvdW5kLXNpemUiLGluaXRpYWxWYWx1ZToiMCIscHJlZml4OiEoaGUuQ09WRVI9ImNvdmVyIiksdHlwZToxLHBhcnNlOmZ1bmN0aW9uKEEsZSl7cmV0dXJuIEFlKGUpLm1hcChmdW5jdGlvbihBKXtyZXR1cm4gQS5maWx0ZXIocWUpfSl9fSxxZT1mdW5jdGlvbihBKXtyZXR1cm4gX0EoQSl8fHRlKEEpfSxoZT1mdW5jdGlvbihBKXtyZXR1cm57bmFtZToiYm9yZGVyLSIrQSsiLWNvbG9yIixpbml0aWFsVmFsdWU6InRyYW5zcGFyZW50IixwcmVmaXg6ITEsdHlwZTozLGZvcm1hdDoiY29sb3IifX0samU9aGUoInRvcCIpLHplPWhlKCJyaWdodCIpLCRlPWhlKCJib3R0b20iKSxBdD1oZSgibGVmdCIpLGhlPWZ1bmN0aW9uKEEpe3JldHVybntuYW1lOiJib3JkZXItcmFkaXVzLSIrQSxpbml0aWFsVmFsdWU6IjAgMCIscHJlZml4OiExLHR5cGU6MSxwYXJzZTpmdW5jdGlvbihBLGUpe3JldHVybiByZShlLmZpbHRlcih0ZSkpfX19LGV0PWhlKCJ0b3AtbGVmdCIpLHR0PWhlKCJ0b3AtcmlnaHQiKSxydD1oZSgiYm90dG9tLXJpZ2h0IiksQnQ9aGUoImJvdHRvbS1sZWZ0IiksaGU9ZnVuY3Rpb24oQSl7cmV0dXJue25hbWU6ImJvcmRlci0iK0ErIi1zdHlsZSIsaW5pdGlhbFZhbHVlOiJzb2xpZCIscHJlZml4OiExLHR5cGU6MixwYXJzZTpmdW5jdGlvbihBLGUpe3N3aXRjaChlKXtjYXNlIm5vbmUiOnJldHVybiAwO2Nhc2UiZGFzaGVkIjpyZXR1cm4gMjtjYXNlImRvdHRlZCI6cmV0dXJuIDM7Y2FzZSJkb3VibGUiOnJldHVybiA0fXJldHVybiAxfX19LG50PWhlKCJ0b3AiKSxzdD1oZSgicmlnaHQiKSxvdD1oZSgiYm90dG9tIiksaXQ9aGUoImxlZnQiKSxoZT1mdW5jdGlvbihBKXtyZXR1cm57bmFtZToiYm9yZGVyLSIrQSsiLXdpZHRoIixpbml0aWFsVmFsdWU6IjAiLHR5cGU6MCxwcmVmaXg6ITEscGFyc2U6ZnVuY3Rpb24oQSxlKXtyZXR1cm4gV0EoZSk/ZS5udW1iZXI6MH19fSxRdD1oZSgidG9wIiksY3Q9aGUoInJpZ2h0IiksYXQ9aGUoImJvdHRvbSIpLGd0PWhlKCJsZWZ0Iiksd3Q9e25hbWU6ImNvbG9yIixpbml0aWFsVmFsdWU6InRyYW5zcGFyZW50IixwcmVmaXg6ITEsdHlwZTozLGZvcm1hdDoiY29sb3IifSxVdD17bmFtZToiZGlyZWN0aW9uIixpbml0aWFsVmFsdWU6Imx0ciIscHJlZml4OiExLHR5cGU6MixwYXJzZTpmdW5jdGlvbihBLGUpe3JldHVybiJydGwiIT09ZT8wOjF9fSxsdD17bmFtZToiZGlzcGxheSIsaW5pdGlhbFZhbHVlOiJpbmxpbmUtYmxvY2siLHByZWZpeDohMSx0eXBlOjEscGFyc2U6ZnVuY3Rpb24oQSxlKXtyZXR1cm4gZS5maWx0ZXIoX0EpLnJlZHVjZShmdW5jdGlvbihBLGUpe3JldHVybiBBfEN0KGUudmFsdWUpfSwwKX19LEN0PWZ1bmN0aW9uKEEpe3N3aXRjaChBKXtjYXNlImJsb2NrIjpjYXNlIi13ZWJraXQtYm94IjpyZXR1cm4gMjtjYXNlImlubGluZSI6cmV0dXJuIDQ7Y2FzZSJydW4taW4iOnJldHVybiA4O2Nhc2UiZmxvdyI6cmV0dXJuIDE2O2Nhc2UiZmxvdy1yb290IjpyZXR1cm4gMzI7Y2FzZSJ0YWJsZSI6cmV0dXJuIDY0O2Nhc2UiZmxleCI6Y2FzZSItd2Via2l0LWZsZXgiOnJldHVybiAxMjg7Y2FzZSJncmlkIjpjYXNlIi1tcy1ncmlkIjpyZXR1cm4gMjU2O2Nhc2UicnVieSI6cmV0dXJuIDUxMjtjYXNlInN1YmdyaWQiOnJldHVybiAxMDI0O2Nhc2UibGlzdC1pdGVtIjpyZXR1cm4gMjA0ODtjYXNlInRhYmxlLXJvdy1ncm91cCI6cmV0dXJuIDQwOTY7Y2FzZSJ0YWJsZS1oZWFkZXItZ3JvdXAiOnJldHVybiA4MTkyO2Nhc2UidGFibGUtZm9vdGVyLWdyb3VwIjpyZXR1cm4gMTYzODQ7Y2FzZSJ0YWJsZS1yb3ciOnJldHVybiAzMjc2ODtjYXNlInRhYmxlLWNlbGwiOnJldHVybiA2NTUzNjtjYXNlInRhYmxlLWNvbHVtbi1ncm91cCI6cmV0dXJuIDEzMTA3MjtjYXNlInRhYmxlLWNvbHVtbiI6cmV0dXJuIDI2MjE0NDtjYXNlInRhYmxlLWNhcHRpb24iOnJldHVybiA1MjQyODg7Y2FzZSJydWJ5LWJhc2UiOnJldHVybiAxMDQ4NTc2O2Nhc2UicnVieS10ZXh0IjpyZXR1cm4gMjA5NzE1MjtjYXNlInJ1YnktYmFzZS1jb250YWluZXIiOnJldHVybiA0MTk0MzA0O2Nhc2UicnVieS10ZXh0LWNvbnRhaW5lciI6cmV0dXJuIDgzODg2MDg7Y2FzZSJjb250ZW50cyI6cmV0dXJuIDE2Nzc3MjE2O2Nhc2UiaW5saW5lLWJsb2NrIjpyZXR1cm4gMzM1NTQ0MzI7Y2FzZSJpbmxpbmUtbGlzdC1pdGVtIjpyZXR1cm4gNjcxMDg4NjQ7Y2FzZSJpbmxpbmUtdGFibGUiOnJldHVybiAxMzQyMTc3Mjg7Y2FzZSJpbmxpbmUtZmxleCI6cmV0dXJuIDI2ODQzNTQ1NjtjYXNlImlubGluZS1ncmlkIjpyZXR1cm4gNTM2ODcwOTEyfXJldHVybiAwfSx1dD17bmFtZToiZmxvYXQiLGluaXRpYWxWYWx1ZToibm9uZSIscHJlZml4OiExLHR5cGU6MixwYXJzZTpmdW5jdGlvbihBLGUpe3N3aXRjaChlKXtjYXNlImxlZnQiOnJldHVybiAxO2Nhc2UicmlnaHQiOnJldHVybiAyO2Nhc2UiaW5saW5lLXN0YXJ0IjpyZXR1cm4gMztjYXNlImlubGluZS1lbmQiOnJldHVybiA0fXJldHVybiAwfX0sRnQ9e25hbWU6ImxldHRlci1zcGFjaW5nIixpbml0aWFsVmFsdWU6IjAiLHByZWZpeDohMSx0eXBlOjAscGFyc2U6ZnVuY3Rpb24oQSxlKXtyZXR1cm4hKDIwPT09ZS50eXBlJiYibm9ybWFsIj09PWUudmFsdWV8fDE3IT09ZS50eXBlJiYxNSE9PWUudHlwZSk/ZS5udW1iZXI6MH19LGh0PXtuYW1lOiJsaW5lLWJyZWFrIixpbml0aWFsVmFsdWU6KGhlPVdlPVdlfHx7fSkuTk9STUFMPSJub3JtYWwiLHByZWZpeDohKGhlLlNUUklDVD0ic3RyaWN0IiksdHlwZToyLHBhcnNlOmZ1bmN0aW9uKEEsZSl7cmV0dXJuInN0cmljdCIhPT1lP1dlLk5PUk1BTDpXZS5TVFJJQ1R9fSxkdD17bmFtZToibGluZS1oZWlnaHQiLGluaXRpYWxWYWx1ZToibm9ybWFsIixwcmVmaXg6ITEsdHlwZTo0fSxmdD17bmFtZToibGlzdC1zdHlsZS1pbWFnZSIsaW5pdGlhbFZhbHVlOiJub25lIix0eXBlOjAscHJlZml4OiExLHBhcnNlOmZ1bmN0aW9uKEEsZSl7cmV0dXJuIDIwPT09ZS50eXBlJiYibm9uZSI9PT1lLnZhbHVlP251bGw6T2UoQSxlKX19LEh0PXtuYW1lOiJsaXN0LXN0eWxlLXBvc2l0aW9uIixpbml0aWFsVmFsdWU6Im91dHNpZGUiLHByZWZpeDohMSx0eXBlOjIscGFyc2U6ZnVuY3Rpb24oQSxlKXtyZXR1cm4iaW5zaWRlIiE9PWU/MTowfX0scHQ9e25hbWU6Imxpc3Qtc3R5bGUtdHlwZSIsaW5pdGlhbFZhbHVlOiJub25lIixwcmVmaXg6ITEsdHlwZToyLHBhcnNlOmZ1bmN0aW9uKEEsZSl7c3dpdGNoKGUpe2Nhc2UiZGlzYyI6cmV0dXJuIDA7Y2FzZSJjaXJjbGUiOnJldHVybiAxO2Nhc2Uic3F1YXJlIjpyZXR1cm4gMjtjYXNlImRlY2ltYWwiOnJldHVybiAzO2Nhc2UiY2prLWRlY2ltYWwiOnJldHVybiA0O2Nhc2UiZGVjaW1hbC1sZWFkaW5nLXplcm8iOnJldHVybiA1O2Nhc2UibG93ZXItcm9tYW4iOnJldHVybiA2O2Nhc2UidXBwZXItcm9tYW4iOnJldHVybiA3O2Nhc2UibG93ZXItZ3JlZWsiOnJldHVybiA4O2Nhc2UibG93ZXItYWxwaGEiOnJldHVybiA5O2Nhc2UidXBwZXItYWxwaGEiOnJldHVybiAxMDtjYXNlImFyYWJpYy1pbmRpYyI6cmV0dXJuIDExO2Nhc2UiYXJtZW5pYW4iOnJldHVybiAxMjtjYXNlImJlbmdhbGkiOnJldHVybiAxMztjYXNlImNhbWJvZGlhbiI6cmV0dXJuIDE0O2Nhc2UiY2prLWVhcnRobHktYnJhbmNoIjpyZXR1cm4gMTU7Y2FzZSJjamstaGVhdmVubHktc3RlbSI6cmV0dXJuIDE2O2Nhc2UiY2prLWlkZW9ncmFwaGljIjpyZXR1cm4gMTc7Y2FzZSJkZXZhbmFnYXJpIjpyZXR1cm4gMTg7Y2FzZSJldGhpb3BpYy1udW1lcmljIjpyZXR1cm4gMTk7Y2FzZSJnZW9yZ2lhbiI6cmV0dXJuIDIwO2Nhc2UiZ3VqYXJhdGkiOnJldHVybiAyMTtjYXNlImd1cm11a2hpIjpjYXNlImhlYnJldyI6cmV0dXJuIDIyO2Nhc2UiaGlyYWdhbmEiOnJldHVybiAyMztjYXNlImhpcmFnYW5hLWlyb2hhIjpyZXR1cm4gMjQ7Y2FzZSJqYXBhbmVzZS1mb3JtYWwiOnJldHVybiAyNTtjYXNlImphcGFuZXNlLWluZm9ybWFsIjpyZXR1cm4gMjY7Y2FzZSJrYW5uYWRhIjpyZXR1cm4gMjc7Y2FzZSJrYXRha2FuYSI6cmV0dXJuIDI4O2Nhc2Uia2F0YWthbmEtaXJvaGEiOnJldHVybiAyOTtjYXNlImtobWVyIjpyZXR1cm4gMzA7Y2FzZSJrb3JlYW4taGFuZ3VsLWZvcm1hbCI6cmV0dXJuIDMxO2Nhc2Uia29yZWFuLWhhbmphLWZvcm1hbCI6cmV0dXJuIDMyO2Nhc2Uia29yZWFuLWhhbmphLWluZm9ybWFsIjpyZXR1cm4gMzM7Y2FzZSJsYW8iOnJldHVybiAzNDtjYXNlImxvd2VyLWFybWVuaWFuIjpyZXR1cm4gMzU7Y2FzZSJtYWxheWFsYW0iOnJldHVybiAzNjtjYXNlIm1vbmdvbGlhbiI6cmV0dXJuIDM3O2Nhc2UibXlhbm1hciI6cmV0dXJuIDM4O2Nhc2Uib3JpeWEiOnJldHVybiAzOTtjYXNlInBlcnNpYW4iOnJldHVybiA0MDtjYXNlInNpbXAtY2hpbmVzZS1mb3JtYWwiOnJldHVybiA0MTtjYXNlInNpbXAtY2hpbmVzZS1pbmZvcm1hbCI6cmV0dXJuIDQyO2Nhc2UidGFtaWwiOnJldHVybiA0MztjYXNlInRlbHVndSI6cmV0dXJuIDQ0O2Nhc2UidGhhaSI6cmV0dXJuIDQ1O2Nhc2UidGliZXRhbiI6cmV0dXJuIDQ2O2Nhc2UidHJhZC1jaGluZXNlLWZvcm1hbCI6cmV0dXJuIDQ3O2Nhc2UidHJhZC1jaGluZXNlLWluZm9ybWFsIjpyZXR1cm4gNDg7Y2FzZSJ1cHBlci1hcm1lbmlhbiI6cmV0dXJuIDQ5O2Nhc2UiZGlzY2xvc3VyZS1vcGVuIjpyZXR1cm4gNTA7Y2FzZSJkaXNjbG9zdXJlLWNsb3NlZCI6cmV0dXJuIDUxO2RlZmF1bHQ6cmV0dXJuLTF9fX0saGU9ZnVuY3Rpb24oQSl7cmV0dXJue25hbWU6Im1hcmdpbi0iK0EsaW5pdGlhbFZhbHVlOiIwIixwcmVmaXg6ITEsdHlwZTo0fX0sRXQ9aGUoInRvcCIpLEl0PWhlKCJyaWdodCIpLHl0PWhlKCJib3R0b20iKSxLdD1oZSgibGVmdCIpLG10PXtuYW1lOiJvdmVyZmxvdyIsaW5pdGlhbFZhbHVlOiJ2aXNpYmxlIixwcmVmaXg6ITEsdHlwZToxLHBhcnNlOmZ1bmN0aW9uKEEsZSl7cmV0dXJuIGUuZmlsdGVyKF9BKS5tYXAoZnVuY3Rpb24oQSl7c3dpdGNoKEEudmFsdWUpe2Nhc2UiaGlkZGVuIjpyZXR1cm4gMTtjYXNlInNjcm9sbCI6cmV0dXJuIDI7Y2FzZSJjbGlwIjpyZXR1cm4gMztjYXNlImF1dG8iOnJldHVybiA0O2RlZmF1bHQ6cmV0dXJuIDB9fSl9fSxMdD17bmFtZToib3ZlcmZsb3ctd3JhcCIsaW5pdGlhbFZhbHVlOiJub3JtYWwiLHByZWZpeDohMSx0eXBlOjIscGFyc2U6ZnVuY3Rpb24oQSxlKXtyZXR1cm4iYnJlYWstd29yZCIhPT1lPyJub3JtYWwiOiJicmVhay13b3JkIn19LGhlPWZ1bmN0aW9uKEEpe3JldHVybntuYW1lOiJwYWRkaW5nLSIrQSxpbml0aWFsVmFsdWU6IjAiLHByZWZpeDohMSx0eXBlOjMsZm9ybWF0OiJsZW5ndGgtcGVyY2VudGFnZSJ9fSxidD1oZSgidG9wIiksRHQ9aGUoInJpZ2h0IiksdnQ9aGUoImJvdHRvbSIpLHh0PWhlKCJsZWZ0IiksTXQ9e25hbWU6InRleHQtYWxpZ24iLGluaXRpYWxWYWx1ZToibGVmdCIscHJlZml4OiExLHR5cGU6MixwYXJzZTpmdW5jdGlvbihBLGUpe3N3aXRjaChlKXtjYXNlInJpZ2h0IjpyZXR1cm4gMjtjYXNlImNlbnRlciI6Y2FzZSJqdXN0aWZ5IjpyZXR1cm4gMTtkZWZhdWx0OnJldHVybiAwfX19LFN0PXtuYW1lOiJwb3NpdGlvbiIsaW5pdGlhbFZhbHVlOiJzdGF0aWMiLHByZWZpeDohMSx0eXBlOjIscGFyc2U6ZnVuY3Rpb24oQSxlKXtzd2l0Y2goZSl7Y2FzZSJyZWxhdGl2ZSI6cmV0dXJuIDE7Y2FzZSJhYnNvbHV0ZSI6cmV0dXJuIDI7Y2FzZSJmaXhlZCI6cmV0dXJuIDM7Y2FzZSJzdGlja3kiOnJldHVybiA0fXJldHVybiAwfX0sVHQ9e25hbWU6InRleHQtc2hhZG93Iixpbml0aWFsVmFsdWU6Im5vbmUiLHR5cGU6MSxwcmVmaXg6ITEscGFyc2U6ZnVuY3Rpb24obixBKXtyZXR1cm4gMT09PUEubGVuZ3RoJiZqQShBWzBdLCJub25lIik/W106QWUoQSkubWFwKGZ1bmN0aW9uKEEpe2Zvcih2YXIgZT17Y29sb3I6TGUuVFJBTlNQQVJFTlQsb2Zmc2V0WDphZSxvZmZzZXRZOmFlLGJsdXI6YWV9LHQ9MCxyPTA7cjxBLmxlbmd0aDtyKyspe3ZhciBCPUFbcl07ZWUoQik/KDA9PT10P2Uub2Zmc2V0WD1COjE9PT10P2Uub2Zmc2V0WT1COmUuYmx1cj1CLHQrKyk6ZS5jb2xvcj11ZShuLEIpfXJldHVybiBlfSl9fSxHdD17bmFtZToidGV4dC10cmFuc2Zvcm0iLGluaXRpYWxWYWx1ZToibm9uZSIscHJlZml4OiExLHR5cGU6MixwYXJzZTpmdW5jdGlvbihBLGUpe3N3aXRjaChlKXtjYXNlInVwcGVyY2FzZSI6cmV0dXJuIDI7Y2FzZSJsb3dlcmNhc2UiOnJldHVybiAxO2Nhc2UiY2FwaXRhbGl6ZSI6cmV0dXJuIDN9cmV0dXJuIDB9fSxPdD17bmFtZToidHJhbnNmb3JtIixpbml0aWFsVmFsdWU6Im5vbmUiLHByZWZpeDohMCx0eXBlOjAscGFyc2U6ZnVuY3Rpb24oQSxlKXtpZigyMD09PWUudHlwZSYmIm5vbmUiPT09ZS52YWx1ZSlyZXR1cm4gbnVsbDtpZigxOCE9PWUudHlwZSlyZXR1cm4gbnVsbDt2YXIgdD1WdFtlLm5hbWVdO2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IEVycm9yKCdBdHRlbXB0aW5nIHRvIHBhcnNlIGFuIHVuc3VwcG9ydGVkIHRyYW5zZm9ybSBmdW5jdGlvbiAiJytlLm5hbWUrJyInKTtyZXR1cm4gdChlLnZhbHVlcyl9fSxWdD17bWF0cml4OmZ1bmN0aW9uKEEpe0E9QS5maWx0ZXIoZnVuY3Rpb24oQSl7cmV0dXJuIDE3PT09QS50eXBlfSkubWFwKGZ1bmN0aW9uKEEpe3JldHVybiBBLm51bWJlcn0pO3JldHVybiA2PT09QS5sZW5ndGg/QTpudWxsfSxtYXRyaXgzZDpmdW5jdGlvbihBKXt2YXIgZT1BLmZpbHRlcihmdW5jdGlvbihBKXtyZXR1cm4gMTc9PT1BLnR5cGV9KS5tYXAoZnVuY3Rpb24oQSl7cmV0dXJuIEEubnVtYmVyfSksdD1lWzBdLHI9ZVsxXTtlWzJdLGVbM107dmFyIEI9ZVs0XSxuPWVbNV07ZVs2XSxlWzddLGVbOF0sZVs5XSxlWzEwXSxlWzExXTt2YXIgcz1lWzEyXSxBPWVbMTNdO3JldHVybiBlWzE0XSxlWzE1XSwxNj09PWUubGVuZ3RoP1t0LHIsQixuLHMsQV06bnVsbH19LGhlPXt0eXBlOjE2LG51bWJlcjo1MCxmbGFnczo0fSxrdD1baGUsaGVdLFJ0PXtuYW1lOiJ0cmFuc2Zvcm0tb3JpZ2luIixpbml0aWFsVmFsdWU6IjUwJSA1MCUiLHByZWZpeDohMCx0eXBlOjEscGFyc2U6ZnVuY3Rpb24oQSxlKXtlPWUuZmlsdGVyKHRlKTtyZXR1cm4gMiE9PWUubGVuZ3RoP2t0OltlWzBdLGVbMV1dfX0sTnQ9e25hbWU6InZpc2libGUiLGluaXRpYWxWYWx1ZToibm9uZSIscHJlZml4OiExLHR5cGU6MixwYXJzZTpmdW5jdGlvbihBLGUpe3N3aXRjaChlKXtjYXNlImhpZGRlbiI6cmV0dXJuIDE7Y2FzZSJjb2xsYXBzZSI6cmV0dXJuIDI7ZGVmYXVsdDpyZXR1cm4gMH19fTsoaGU9WmU9WmV8fHt9KS5OT1JNQUw9Im5vcm1hbCIsaGUuQlJFQUtfQUxMPSJicmVhay1hbGwiO2Z1bmN0aW9uIFB0KEEsZSl7cmV0dXJuIDAhPShBJmUpfWZ1bmN0aW9uIFh0KEEsZSx0KXtyZXR1cm4oQT1BJiZBW01hdGgubWluKGUsQS5sZW5ndGgtMSldKT90P0Eub3BlbjpBLmNsb3NlOiIifXZhciBKdD17bmFtZToid29yZC1icmVhayIsaW5pdGlhbFZhbHVlOiJub3JtYWwiLHByZWZpeDohKGhlLktFRVBfQUxMPSJrZWVwLWFsbCIpLHR5cGU6MixwYXJzZTpmdW5jdGlvbihBLGUpe3N3aXRjaChlKXtjYXNlImJyZWFrLWFsbCI6cmV0dXJuIFplLkJSRUFLX0FMTDtjYXNlImtlZXAtYWxsIjpyZXR1cm4gWmUuS0VFUF9BTEw7ZGVmYXVsdDpyZXR1cm4gWmUuTk9STUFMfX19LFl0PXtuYW1lOiJ6LWluZGV4Iixpbml0aWFsVmFsdWU6ImF1dG8iLHByZWZpeDohMSx0eXBlOjAscGFyc2U6ZnVuY3Rpb24oQSxlKXtpZigyMD09PWUudHlwZSlyZXR1cm57YXV0bzohMCxvcmRlcjowfTtpZihaQShlKSlyZXR1cm57YXV0bzohMSxvcmRlcjplLm51bWJlcn07dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHotaW5kZXggbnVtYmVyIHBhcnNlZCIpfX0sV3Q9ZnVuY3Rpb24oQSxlKXtpZigxNT09PWUudHlwZSlzd2l0Y2goZS51bml0LnRvTG93ZXJDYXNlKCkpe2Nhc2UicyI6cmV0dXJuIDFlMyplLm51bWJlcjtjYXNlIm1zIjpyZXR1cm4gZS5udW1iZXJ9dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCB0aW1lIHR5cGUiKX0sWnQ9e25hbWU6Im9wYWNpdHkiLGluaXRpYWxWYWx1ZToiMSIsdHlwZTowLHByZWZpeDohMSxwYXJzZTpmdW5jdGlvbihBLGUpe3JldHVybiBaQShlKT9lLm51bWJlcjoxfX0sX3Q9e25hbWU6InRleHQtZGVjb3JhdGlvbi1jb2xvciIsaW5pdGlhbFZhbHVlOiJ0cmFuc3BhcmVudCIscHJlZml4OiExLHR5cGU6Myxmb3JtYXQ6ImNvbG9yIn0scXQ9e25hbWU6InRleHQtZGVjb3JhdGlvbi1saW5lIixpbml0aWFsVmFsdWU6Im5vbmUiLHByZWZpeDohMSx0eXBlOjEscGFyc2U6ZnVuY3Rpb24oQSxlKXtyZXR1cm4gZS5maWx0ZXIoX0EpLm1hcChmdW5jdGlvbihBKXtzd2l0Y2goQS52YWx1ZSl7Y2FzZSJ1bmRlcmxpbmUiOnJldHVybiAxO2Nhc2Uib3ZlcmxpbmUiOnJldHVybiAyO2Nhc2UibGluZS10aHJvdWdoIjpyZXR1cm4gMztjYXNlIm5vbmUiOnJldHVybiA0fXJldHVybiAwfSkuZmlsdGVyKGZ1bmN0aW9uKEEpe3JldHVybiAwIT09QX0pfX0sanQ9e25hbWU6ImZvbnQtZmFtaWx5Iixpbml0aWFsVmFsdWU6IiIscHJlZml4OiExLHR5cGU6MSxwYXJzZTpmdW5jdGlvbihBLGUpe3ZhciB0PVtdLHI9W107cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihBKXtzd2l0Y2goQS50eXBlKXtjYXNlIDIwOmNhc2UgMDp0LnB1c2goQS52YWx1ZSk7YnJlYWs7Y2FzZSAxNzp0LnB1c2goQS5udW1iZXIudG9TdHJpbmcoKSk7YnJlYWs7Y2FzZSA0OnIucHVzaCh0LmpvaW4oIiAiKSksdC5sZW5ndGg9MH19KSx0Lmxlbmd0aCYmci5wdXNoKHQuam9pbigiICIpKSxyLm1hcChmdW5jdGlvbihBKXtyZXR1cm4tMT09PUEuaW5kZXhPZigiICIpP0E6IiciK0ErIicifSl9fSx6dD17bmFtZToiZm9udC1zaXplIixpbml0aWFsVmFsdWU6IjAiLHByZWZpeDohMSx0eXBlOjMsZm9ybWF0OiJsZW5ndGgifSwkdD17bmFtZToiZm9udC13ZWlnaHQiLGluaXRpYWxWYWx1ZToibm9ybWFsIix0eXBlOjAscHJlZml4OiExLHBhcnNlOmZ1bmN0aW9uKEEsZSl7cmV0dXJuIFpBKGUpP2UubnVtYmVyOiFfQShlKXx8ImJvbGQiIT09ZS52YWx1ZT80MDA6NzAwfX0sQXI9e25hbWU6ImZvbnQtdmFyaWFudCIsaW5pdGlhbFZhbHVlOiJub25lIix0eXBlOjEscHJlZml4OiExLHBhcnNlOmZ1bmN0aW9uKEEsZSl7cmV0dXJuIGUuZmlsdGVyKF9BKS5tYXAoZnVuY3Rpb24oQSl7cmV0dXJuIEEudmFsdWV9KX19LGVyPXtuYW1lOiJmb250LXN0eWxlIixpbml0aWFsVmFsdWU6Im5vcm1hbCIscHJlZml4OiExLHR5cGU6MixwYXJzZTpmdW5jdGlvbihBLGUpe3N3aXRjaChlKXtjYXNlIm9ibGlxdWUiOnJldHVybiJvYmxpcXVlIjtjYXNlIml0YWxpYyI6cmV0dXJuIml0YWxpYyI7ZGVmYXVsdDpyZXR1cm4ibm9ybWFsIn19fSx0cj17bmFtZToiY29udGVudCIsaW5pdGlhbFZhbHVlOiJub25lIix0eXBlOjEscHJlZml4OiExLHBhcnNlOmZ1bmN0aW9uKEEsZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybltdO3ZhciB0PWVbMF07cmV0dXJuIDIwPT09dC50eXBlJiYibm9uZSI9PT10LnZhbHVlP1tdOmV9fSxycj17bmFtZToiY291bnRlci1pbmNyZW1lbnQiLGluaXRpYWxWYWx1ZToibm9uZSIscHJlZml4OiEwLHR5cGU6MSxwYXJzZTpmdW5jdGlvbihBLGUpe2lmKDA9PT1lLmxlbmd0aClyZXR1cm4gbnVsbDt2YXIgdD1lWzBdO2lmKDIwPT09dC50eXBlJiYibm9uZSI9PT10LnZhbHVlKXJldHVybiBudWxsO2Zvcih2YXIgcj1bXSxCPWUuZmlsdGVyKHpBKSxuPTA7bjxCLmxlbmd0aDtuKyspe3ZhciBzPUJbbl0sbz1CW24rMV07MjA9PT1zLnR5cGUmJihvPW8mJlpBKG8pP28ubnVtYmVyOjEsci5wdXNoKHtjb3VudGVyOnMudmFsdWUsaW5jcmVtZW50Om99KSl9cmV0dXJuIHJ9fSxCcj17bmFtZToiY291bnRlci1yZXNldCIsaW5pdGlhbFZhbHVlOiJub25lIixwcmVmaXg6ITAsdHlwZToxLHBhcnNlOmZ1bmN0aW9uKEEsZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybltdO2Zvcih2YXIgdD1bXSxyPWUuZmlsdGVyKHpBKSxCPTA7QjxyLmxlbmd0aDtCKyspe3ZhciBuPXJbQl0scz1yW0IrMV07X0EobikmJiJub25lIiE9PW4udmFsdWUmJihzPXMmJlpBKHMpP3MubnVtYmVyOjAsdC5wdXNoKHtjb3VudGVyOm4udmFsdWUscmVzZXQ6c30pKX1yZXR1cm4gdH19LG5yPXtuYW1lOiJkdXJhdGlvbiIsaW5pdGlhbFZhbHVlOiIwcyIscHJlZml4OiExLHR5cGU6MSxwYXJzZTpmdW5jdGlvbihlLEEpe3JldHVybiBBLmZpbHRlcihXQSkubWFwKGZ1bmN0aW9uKEEpe3JldHVybiBXdChlLEEpfSl9fSxzcj17bmFtZToicXVvdGVzIixpbml0aWFsVmFsdWU6Im5vbmUiLHByZWZpeDohMCx0eXBlOjEscGFyc2U6ZnVuY3Rpb24oQSxlKXtpZigwPT09ZS5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIHQ9ZVswXTtpZigyMD09PXQudHlwZSYmIm5vbmUiPT09dC52YWx1ZSlyZXR1cm4gbnVsbDt2YXIgcj1bXSxCPWUuZmlsdGVyKHFBKTtpZihCLmxlbmd0aCUyIT0wKXJldHVybiBudWxsO2Zvcih2YXIgbj0wO248Qi5sZW5ndGg7bis9Mil7dmFyIHM9QltuXS52YWx1ZSxvPUJbbisxXS52YWx1ZTtyLnB1c2goe29wZW46cyxjbG9zZTpvfSl9cmV0dXJuIHJ9fSxvcj17bmFtZToiYm94LXNoYWRvdyIsaW5pdGlhbFZhbHVlOiJub25lIix0eXBlOjEscHJlZml4OiExLHBhcnNlOmZ1bmN0aW9uKG4sQSl7cmV0dXJuIDE9PT1BLmxlbmd0aCYmakEoQVswXSwibm9uZSIpP1tdOkFlKEEpLm1hcChmdW5jdGlvbihBKXtmb3IodmFyIGU9e2NvbG9yOjI1NSxvZmZzZXRYOmFlLG9mZnNldFk6YWUsYmx1cjphZSxzcHJlYWQ6YWUsaW5zZXQ6ITF9LHQ9MCxyPTA7cjxBLmxlbmd0aDtyKyspe3ZhciBCPUFbcl07akEoQiwiaW5zZXQiKT9lLmluc2V0PSEwOmVlKEIpPygwPT09dD9lLm9mZnNldFg9QjoxPT09dD9lLm9mZnNldFk9QjoyPT09dD9lLmJsdXI9QjplLnNwcmVhZD1CLHQrKyk6ZS5jb2xvcj11ZShuLEIpfXJldHVybiBlfSl9fSxpcj17bmFtZToicGFpbnQtb3JkZXIiLGluaXRpYWxWYWx1ZToibm9ybWFsIixwcmVmaXg6ITEsdHlwZToxLHBhcnNlOmZ1bmN0aW9uKEEsZSl7dmFyIHQ9W107cmV0dXJuIGUuZmlsdGVyKF9BKS5mb3JFYWNoKGZ1bmN0aW9uKEEpe3N3aXRjaChBLnZhbHVlKXtjYXNlInN0cm9rZSI6dC5wdXNoKDEpO2JyZWFrO2Nhc2UiZmlsbCI6dC5wdXNoKDApO2JyZWFrO2Nhc2UibWFya2VycyI6dC5wdXNoKDIpfX0pLFswLDEsMl0uZm9yRWFjaChmdW5jdGlvbihBKXstMT09PXQuaW5kZXhPZihBKSYmdC5wdXNoKEEpfSksdH19LFFyPXtuYW1lOiItd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yIixpbml0aWFsVmFsdWU6ImN1cnJlbnRjb2xvciIscHJlZml4OiExLHR5cGU6Myxmb3JtYXQ6ImNvbG9yIn0sY3I9e25hbWU6Ii13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGgiLGluaXRpYWxWYWx1ZToiMCIsdHlwZTowLHByZWZpeDohMSxwYXJzZTpmdW5jdGlvbihBLGUpe3JldHVybiBXQShlKT9lLm51bWJlcjowfX0sYXI9KGdyLnByb3RvdHlwZS5pc1Zpc2libGU9ZnVuY3Rpb24oKXtyZXR1cm4gMDx0aGlzLmRpc3BsYXkmJjA8dGhpcy5vcGFjaXR5JiYwPT09dGhpcy52aXNpYmlsaXR5fSxnci5wcm90b3R5cGUuaXNUcmFuc3BhcmVudD1mdW5jdGlvbigpe3JldHVybiBvZSh0aGlzLmJhY2tncm91bmRDb2xvcil9LGdyLnByb3RvdHlwZS5pc1RyYW5zZm9ybWVkPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT10aGlzLnRyYW5zZm9ybX0sZ3IucHJvdG90eXBlLmlzUG9zaXRpb25lZD1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5wb3NpdGlvbn0sZ3IucHJvdG90eXBlLmlzUG9zaXRpb25lZFdpdGhaSW5kZXg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1Bvc2l0aW9uZWQoKSYmIXRoaXMuekluZGV4LmF1dG99LGdyLnByb3RvdHlwZS5pc0Zsb2F0aW5nPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLmZsb2F0fSxnci5wcm90b3R5cGUuaXNJbmxpbmVMZXZlbD1mdW5jdGlvbigpe3JldHVybiBQdCh0aGlzLmRpc3BsYXksNCl8fFB0KHRoaXMuZGlzcGxheSwzMzU1NDQzMil8fFB0KHRoaXMuZGlzcGxheSwyNjg0MzU0NTYpfHxQdCh0aGlzLmRpc3BsYXksNTM2ODcwOTEyKXx8UHQodGhpcy5kaXNwbGF5LDY3MTA4ODY0KXx8UHQodGhpcy5kaXNwbGF5LDEzNDIxNzcyOCl9LGdyKTtmdW5jdGlvbiBncihBLGUpe3RoaXMuYW5pbWF0aW9uRHVyYXRpb249bHIoQSxucixlLmFuaW1hdGlvbkR1cmF0aW9uKSx0aGlzLmJhY2tncm91bmRDbGlwPWxyKEEsYmUsZS5iYWNrZ3JvdW5kQ2xpcCksdGhpcy5iYWNrZ3JvdW5kQ29sb3I9bHIoQSxEZSxlLmJhY2tncm91bmRDb2xvciksdGhpcy5iYWNrZ3JvdW5kSW1hZ2U9bHIoQSxSZSxlLmJhY2tncm91bmRJbWFnZSksdGhpcy5iYWNrZ3JvdW5kT3JpZ2luPWxyKEEsTmUsZS5iYWNrZ3JvdW5kT3JpZ2luKSx0aGlzLmJhY2tncm91bmRQb3NpdGlvbj1scihBLFBlLGUuYmFja2dyb3VuZFBvc2l0aW9uKSx0aGlzLmJhY2tncm91bmRSZXBlYXQ9bHIoQSxYZSxlLmJhY2tncm91bmRSZXBlYXQpLHRoaXMuYmFja2dyb3VuZFNpemU9bHIoQSxfZSxlLmJhY2tncm91bmRTaXplKSx0aGlzLmJvcmRlclRvcENvbG9yPWxyKEEsamUsZS5ib3JkZXJUb3BDb2xvciksdGhpcy5ib3JkZXJSaWdodENvbG9yPWxyKEEsemUsZS5ib3JkZXJSaWdodENvbG9yKSx0aGlzLmJvcmRlckJvdHRvbUNvbG9yPWxyKEEsJGUsZS5ib3JkZXJCb3R0b21Db2xvciksdGhpcy5ib3JkZXJMZWZ0Q29sb3I9bHIoQSxBdCxlLmJvcmRlckxlZnRDb2xvciksdGhpcy5ib3JkZXJUb3BMZWZ0UmFkaXVzPWxyKEEsZXQsZS5ib3JkZXJUb3BMZWZ0UmFkaXVzKSx0aGlzLmJvcmRlclRvcFJpZ2h0UmFkaXVzPWxyKEEsdHQsZS5ib3JkZXJUb3BSaWdodFJhZGl1cyksdGhpcy5ib3JkZXJCb3R0b21SaWdodFJhZGl1cz1scihBLHJ0LGUuYm9yZGVyQm90dG9tUmlnaHRSYWRpdXMpLHRoaXMuYm9yZGVyQm90dG9tTGVmdFJhZGl1cz1scihBLEJ0LGUuYm9yZGVyQm90dG9tTGVmdFJhZGl1cyksdGhpcy5ib3JkZXJUb3BTdHlsZT1scihBLG50LGUuYm9yZGVyVG9wU3R5bGUpLHRoaXMuYm9yZGVyUmlnaHRTdHlsZT1scihBLHN0LGUuYm9yZGVyUmlnaHRTdHlsZSksdGhpcy5ib3JkZXJCb3R0b21TdHlsZT1scihBLG90LGUuYm9yZGVyQm90dG9tU3R5bGUpLHRoaXMuYm9yZGVyTGVmdFN0eWxlPWxyKEEsaXQsZS5ib3JkZXJMZWZ0U3R5bGUpLHRoaXMuYm9yZGVyVG9wV2lkdGg9bHIoQSxRdCxlLmJvcmRlclRvcFdpZHRoKSx0aGlzLmJvcmRlclJpZ2h0V2lkdGg9bHIoQSxjdCxlLmJvcmRlclJpZ2h0V2lkdGgpLHRoaXMuYm9yZGVyQm90dG9tV2lkdGg9bHIoQSxhdCxlLmJvcmRlckJvdHRvbVdpZHRoKSx0aGlzLmJvcmRlckxlZnRXaWR0aD1scihBLGd0LGUuYm9yZGVyTGVmdFdpZHRoKSx0aGlzLmJveFNoYWRvdz1scihBLG9yLGUuYm94U2hhZG93KSx0aGlzLmNvbG9yPWxyKEEsd3QsZS5jb2xvciksdGhpcy5kaXJlY3Rpb249bHIoQSxVdCxlLmRpcmVjdGlvbiksdGhpcy5kaXNwbGF5PWxyKEEsbHQsZS5kaXNwbGF5KSx0aGlzLmZsb2F0PWxyKEEsdXQsZS5jc3NGbG9hdCksdGhpcy5mb250RmFtaWx5PWxyKEEsanQsZS5mb250RmFtaWx5KSx0aGlzLmZvbnRTaXplPWxyKEEsenQsZS5mb250U2l6ZSksdGhpcy5mb250U3R5bGU9bHIoQSxlcixlLmZvbnRTdHlsZSksdGhpcy5mb250VmFyaWFudD1scihBLEFyLGUuZm9udFZhcmlhbnQpLHRoaXMuZm9udFdlaWdodD1scihBLCR0LGUuZm9udFdlaWdodCksdGhpcy5sZXR0ZXJTcGFjaW5nPWxyKEEsRnQsZS5sZXR0ZXJTcGFjaW5nKSx0aGlzLmxpbmVCcmVhaz1scihBLGh0LGUubGluZUJyZWFrKSx0aGlzLmxpbmVIZWlnaHQ9bHIoQSxkdCxlLmxpbmVIZWlnaHQpLHRoaXMubGlzdFN0eWxlSW1hZ2U9bHIoQSxmdCxlLmxpc3RTdHlsZUltYWdlKSx0aGlzLmxpc3RTdHlsZVBvc2l0aW9uPWxyKEEsSHQsZS5saXN0U3R5bGVQb3NpdGlvbiksdGhpcy5saXN0U3R5bGVUeXBlPWxyKEEscHQsZS5saXN0U3R5bGVUeXBlKSx0aGlzLm1hcmdpblRvcD1scihBLEV0LGUubWFyZ2luVG9wKSx0aGlzLm1hcmdpblJpZ2h0PWxyKEEsSXQsZS5tYXJnaW5SaWdodCksdGhpcy5tYXJnaW5Cb3R0b209bHIoQSx5dCxlLm1hcmdpbkJvdHRvbSksdGhpcy5tYXJnaW5MZWZ0PWxyKEEsS3QsZS5tYXJnaW5MZWZ0KSx0aGlzLm9wYWNpdHk9bHIoQSxadCxlLm9wYWNpdHkpO3ZhciB0PWxyKEEsbXQsZS5vdmVyZmxvdyk7dGhpcy5vdmVyZmxvd1g9dFswXSx0aGlzLm92ZXJmbG93WT10WzE8dC5sZW5ndGg/MTowXSx0aGlzLm92ZXJmbG93V3JhcD1scihBLEx0LGUub3ZlcmZsb3dXcmFwKSx0aGlzLnBhZGRpbmdUb3A9bHIoQSxidCxlLnBhZGRpbmdUb3ApLHRoaXMucGFkZGluZ1JpZ2h0PWxyKEEsRHQsZS5wYWRkaW5nUmlnaHQpLHRoaXMucGFkZGluZ0JvdHRvbT1scihBLHZ0LGUucGFkZGluZ0JvdHRvbSksdGhpcy5wYWRkaW5nTGVmdD1scihBLHh0LGUucGFkZGluZ0xlZnQpLHRoaXMucGFpbnRPcmRlcj1scihBLGlyLGUucGFpbnRPcmRlciksdGhpcy5wb3NpdGlvbj1scihBLFN0LGUucG9zaXRpb24pLHRoaXMudGV4dEFsaWduPWxyKEEsTXQsZS50ZXh0QWxpZ24pLHRoaXMudGV4dERlY29yYXRpb25Db2xvcj1scihBLF90LG51bGwhPT0odD1lLnRleHREZWNvcmF0aW9uQ29sb3IpJiZ2b2lkIDAhPT10P3Q6ZS5jb2xvciksdGhpcy50ZXh0RGVjb3JhdGlvbkxpbmU9bHIoQSxxdCxudWxsIT09KHQ9ZS50ZXh0RGVjb3JhdGlvbkxpbmUpJiZ2b2lkIDAhPT10P3Q6ZS50ZXh0RGVjb3JhdGlvbiksdGhpcy50ZXh0U2hhZG93PWxyKEEsVHQsZS50ZXh0U2hhZG93KSx0aGlzLnRleHRUcmFuc2Zvcm09bHIoQSxHdCxlLnRleHRUcmFuc2Zvcm0pLHRoaXMudHJhbnNmb3JtPWxyKEEsT3QsZS50cmFuc2Zvcm0pLHRoaXMudHJhbnNmb3JtT3JpZ2luPWxyKEEsUnQsZS50cmFuc2Zvcm1PcmlnaW4pLHRoaXMudmlzaWJpbGl0eT1scihBLE50LGUudmlzaWJpbGl0eSksdGhpcy53ZWJraXRUZXh0U3Ryb2tlQ29sb3I9bHIoQSxRcixlLndlYmtpdFRleHRTdHJva2VDb2xvciksdGhpcy53ZWJraXRUZXh0U3Ryb2tlV2lkdGg9bHIoQSxjcixlLndlYmtpdFRleHRTdHJva2VXaWR0aCksdGhpcy53b3JkQnJlYWs9bHIoQSxKdCxlLndvcmRCcmVhayksdGhpcy56SW5kZXg9bHIoQSxZdCxlLnpJbmRleCl9Zm9yKHZhciB3cj1mdW5jdGlvbihBLGUpe3RoaXMuY29udGVudD1scihBLHRyLGUuY29udGVudCksdGhpcy5xdW90ZXM9bHIoQSxzcixlLnF1b3Rlcyl9LFVyPWZ1bmN0aW9uKEEsZSl7dGhpcy5jb3VudGVySW5jcmVtZW50PWxyKEEscnIsZS5jb3VudGVySW5jcmVtZW50KSx0aGlzLmNvdW50ZXJSZXNldD1scihBLEJyLGUuY291bnRlclJlc2V0KX0sbHI9ZnVuY3Rpb24oQSxlLHQpe3ZhciByPW5ldyBQQSx0PW51bGwhPXQ/dC50b1N0cmluZygpOmUuaW5pdGlhbFZhbHVlO3Iud3JpdGUodCk7dmFyIEI9bmV3IEpBKHIucmVhZCgpKTtzd2l0Y2goZS50eXBlKXtjYXNlIDI6dmFyIG49Qi5wYXJzZUNvbXBvbmVudFZhbHVlKCk7cmV0dXJuIGUucGFyc2UoQSxfQShuKT9uLnZhbHVlOmUuaW5pdGlhbFZhbHVlKTtjYXNlIDA6cmV0dXJuIGUucGFyc2UoQSxCLnBhcnNlQ29tcG9uZW50VmFsdWUoKSk7Y2FzZSAxOnJldHVybiBlLnBhcnNlKEEsQi5wYXJzZUNvbXBvbmVudFZhbHVlcygpKTtjYXNlIDQ6cmV0dXJuIEIucGFyc2VDb21wb25lbnRWYWx1ZSgpO2Nhc2UgMzpzd2l0Y2goZS5mb3JtYXQpe2Nhc2UiYW5nbGUiOnJldHVybiBsZShBLEIucGFyc2VDb21wb25lbnRWYWx1ZSgpKTtjYXNlImNvbG9yIjpyZXR1cm4gdWUoQSxCLnBhcnNlQ29tcG9uZW50VmFsdWUoKSk7Y2FzZSJpbWFnZSI6cmV0dXJuIE9lKEEsQi5wYXJzZUNvbXBvbmVudFZhbHVlKCkpO2Nhc2UibGVuZ3RoIjp2YXIgcz1CLnBhcnNlQ29tcG9uZW50VmFsdWUoKTtyZXR1cm4gZWUocyk/czphZTtjYXNlImxlbmd0aC1wZXJjZW50YWdlIjpzPUIucGFyc2VDb21wb25lbnRWYWx1ZSgpO3JldHVybiB0ZShzKT9zOmFlO2Nhc2UidGltZSI6cmV0dXJuIFd0KEEsQi5wYXJzZUNvbXBvbmVudFZhbHVlKCkpfX19LENyPWZ1bmN0aW9uKEEsZSl7QT1mdW5jdGlvbihBKXtzd2l0Y2goQS5nZXRBdHRyaWJ1dGUoImRhdGEtaHRtbDJjYW52YXMtZGVidWciKSl7Y2FzZSJhbGwiOnJldHVybiAxO2Nhc2UiY2xvbmUiOnJldHVybiAyO2Nhc2UicGFyc2UiOnJldHVybiAzO2Nhc2UicmVuZGVyIjpyZXR1cm4gNDtkZWZhdWx0OnJldHVybiAwfX0oQSk7cmV0dXJuIDE9PT1BfHxlPT09QX0sdXI9ZnVuY3Rpb24oQSxlKXt0aGlzLmNvbnRleHQ9QSx0aGlzLnRleHROb2Rlcz1bXSx0aGlzLmVsZW1lbnRzPVtdLHRoaXMuZmxhZ3M9MCxDcihlLDMpLHRoaXMuc3R5bGVzPW5ldyBhcihBLHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUsbnVsbCkpLEpCKGUpJiYodGhpcy5zdHlsZXMuYW5pbWF0aW9uRHVyYXRpb24uc29tZShmdW5jdGlvbihBKXtyZXR1cm4gMDxBfSkmJihlLnN0eWxlLmFuaW1hdGlvbkR1cmF0aW9uPSIwcyIpLG51bGwhPT10aGlzLnN0eWxlcy50cmFuc2Zvcm0mJihlLnN0eWxlLnRyYW5zZm9ybT0ibm9uZSIpKSx0aGlzLmJvdW5kcz1mKHRoaXMuY29udGV4dCxlKSxDcihlLDQpJiYodGhpcy5mbGFnc3w9MTYpfSxGcj0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIsaHI9InVuZGVmaW5lZCI9PXR5cGVvZiBVaW50OEFycmF5P1tdOm5ldyBVaW50OEFycmF5KDI1NiksZHI9MDtkcjxGci5sZW5ndGg7ZHIrKylocltGci5jaGFyQ29kZUF0KGRyKV09ZHI7ZnVuY3Rpb24gZnIoQSxlLHQpe3JldHVybiBBLnNsaWNlP0Euc2xpY2UoZSx0KTpuZXcgVWludDE2QXJyYXkoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoQSxlLHQpKX12YXIgSHI9KHByLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oQSl7dmFyIGU7aWYoMDw9QSl7aWYoQTw1NTI5Nnx8NTYzMTk8QSYmQTw9NjU1MzUpcmV0dXJuIGU9dGhpcy5pbmRleFtBPj41XSx0aGlzLmRhdGFbZT0oZTw8MikrKDMxJkEpXTtpZihBPD02NTUzNSlyZXR1cm4gZT10aGlzLmluZGV4WzIwNDgrKEEtNTUyOTY+PjUpXSx0aGlzLmRhdGFbZT0oZTw8MikrKDMxJkEpXTtpZihBPHRoaXMuaGlnaFN0YXJ0KXJldHVybiBlPXRoaXMuaW5kZXhbZT0yMDgwKyhBPj4xMSldLGU9dGhpcy5pbmRleFtlKz1BPj41JjYzXSx0aGlzLmRhdGFbZT0oZTw8MikrKDMxJkEpXTtpZihBPD0xMTE0MTExKXJldHVybiB0aGlzLmRhdGFbdGhpcy5oaWdoVmFsdWVJbmRleF19cmV0dXJuIHRoaXMuZXJyb3JWYWx1ZX0scHIpO2Z1bmN0aW9uIHByKEEsZSx0LHIsQixuKXt0aGlzLmluaXRpYWxWYWx1ZT1BLHRoaXMuZXJyb3JWYWx1ZT1lLHRoaXMuaGlnaFN0YXJ0PXQsdGhpcy5oaWdoVmFsdWVJbmRleD1yLHRoaXMuaW5kZXg9Qix0aGlzLmRhdGE9bn1mb3IodmFyIEVyPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixJcj0idW5kZWZpbmVkIj09dHlwZW9mIFVpbnQ4QXJyYXk/W106bmV3IFVpbnQ4QXJyYXkoMjU2KSx5cj0wO3lyPEVyLmxlbmd0aDt5cisrKUlyW0VyLmNoYXJDb2RlQXQoeXIpXT15cjtmdW5jdGlvbiBLcihBKXtyZXR1cm4ga3IuZ2V0KEEpfWZ1bmN0aW9uIG1yKEEpe3ZhciB0PWZ1bmN0aW9uKEEpe2Zvcih2YXIgZT1bXSx0PTAscj1BLmxlbmd0aDt0PHI7KXt2YXIgQixuPUEuY2hhckNvZGVBdCh0KyspOzU1Mjk2PD1uJiZuPD01NjMxOSYmdDxyPzU2MzIwPT0oNjQ1MTImKEI9QS5jaGFyQ29kZUF0KHQrKykpKT9lLnB1c2goKCgxMDIzJm4pPDwxMCkrKDEwMjMmQikrNjU1MzYpOihlLnB1c2gobiksdC0tKTplLnB1c2gobil9cmV0dXJuIGV9KEEpLHI9dC5sZW5ndGgsQj0wLG49MCxzPXQubWFwKEtyKTtyZXR1cm57bmV4dDpmdW5jdGlvbigpe2lmKHI8PUIpcmV0dXJue2RvbmU6ITAsdmFsdWU6bnVsbH07Zm9yKHZhciBBPVJyO0I8ciYmKEE9ZnVuY3Rpb24oQSxlKXt2YXIgdD1lLTIscj1BW3RdLEI9QVtlLTFdLGU9QVtlXTtpZigyPT09QiYmMz09PWUpcmV0dXJuIFJyO2lmKDI9PT1CfHwzPT09Qnx8ND09PUIpcmV0dXJuIsO3IjtpZigyPT09ZXx8Mz09PWV8fDQ9PT1lKXJldHVybiLDtyI7aWYoQj09PVRyJiYtMSE9PVtUcixHcixPcixWcl0uaW5kZXhPZihlKSlyZXR1cm4gUnI7aWYoIShCIT09T3ImJkIhPT1Hcnx8ZSE9PUdyJiYxMCE9PWUpKXJldHVybiBScjtpZigoQj09PVZyfHwxMD09PUIpJiYxMD09PWUpcmV0dXJuIFJyO2lmKDEzPT09ZXx8NT09PWUpcmV0dXJuIFJyO2lmKDc9PT1lKXJldHVybiBScjtpZigxPT09QilyZXR1cm4gUnI7aWYoMTM9PT1CJiYxND09PWUpe2Zvcig7NT09PXI7KXI9QVstLXRdO2lmKDE0PT09cilyZXR1cm4gUnJ9aWYoMTU9PT1CJiYxNT09PWUpe2Zvcih2YXIgbj0wOzE1PT09cjspbisrLHI9QVstLXRdO2lmKG4lMj09MClyZXR1cm4gUnJ9cmV0dXJuIsO3In0ocywrK0IpKT09PVJyOyk7aWYoQT09PVJyJiZCIT09cilyZXR1cm57ZG9uZTohMCx2YWx1ZTpudWxsfTt2YXIgZT1mdW5jdGlvbigpe2Zvcih2YXIgQT1bXSxlPTA7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKylBW2VdPWFyZ3VtZW50c1tlXTtpZihTdHJpbmcuZnJvbUNvZGVQb2ludClyZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQuYXBwbHkoU3RyaW5nLEEpO3ZhciB0PUEubGVuZ3RoO2lmKCF0KXJldHVybiIiO2Zvcih2YXIgcj1bXSxCPS0xLG49IiI7KytCPHQ7KXt2YXIgcz1BW0JdO3M8PTY1NTM1P3IucHVzaChzKToocy09NjU1MzYsci5wdXNoKDU1Mjk2KyhzPj4xMCkscyUxMDI0KzU2MzIwKSksKEIrMT09PXR8fDE2Mzg0PHIubGVuZ3RoKSYmKG4rPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHIpLHIubGVuZ3RoPTApfXJldHVybiBufS5hcHBseShudWxsLHQuc2xpY2UobixCKSk7cmV0dXJuIG49Qix7dmFsdWU6ZSxkb25lOiExfX19fWZ1bmN0aW9uIExyKEEpe3JldHVybiAwPT09QVswXSYmMjU1PT09QVsxXSYmMD09PUFbMl0mJjI1NT09PUFbM119dmFyIGJyLERyLHZyLHhyLE1yLFNyLFRyPTgsR3I9OSxPcj0xMSxWcj0xMixrcj0odnI9ZnVuY3Rpb24oQSl7dmFyIGUsdCxyLEIsbj0uNzUqQS5sZW5ndGgscz1BLmxlbmd0aCxvPTA7Ij0iPT09QVtBLmxlbmd0aC0xXSYmKG4tLSwiPSI9PT1BW0EubGVuZ3RoLTJdJiZuLS0pO2Zvcih2YXIgbj1uZXcoInVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmInVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5JiZ2b2lkIDAhPT1VaW50OEFycmF5LnByb3RvdHlwZS5zbGljZT9BcnJheUJ1ZmZlcjpBcnJheSkobiksaT1BcnJheS5pc0FycmF5KG4pP246bmV3IFVpbnQ4QXJyYXkobiksUT0wO1E8cztRKz00KWU9aHJbQS5jaGFyQ29kZUF0KFEpXSx0PWhyW0EuY2hhckNvZGVBdChRKzEpXSxyPWhyW0EuY2hhckNvZGVBdChRKzIpXSxCPWhyW0EuY2hhckNvZGVBdChRKzMpXSxpW28rK109ZTw8Mnx0Pj40LGlbbysrXT0oMTUmdCk8PDR8cj4+MixpW28rK109KDMmcik8PDZ8NjMmQjtyZXR1cm4gbn0oYnI9IkFBQUFBQUFBQUFBQUVBNEFHQmtBQUZBYUFBQUNBQUFBQUFBSUFCQUFHQUF3QURnQUNBQVFBQWdBRUFBSUFCQUFDQUFRQUFnQUVBQUlBQkFBQ0FBUUFBZ0FFQUFJQUJBQVFBQklBRVFBVEFBSUFCQUFDQUFRQUFnQUVBQUlBQkFBVkFCY0FBZ0FFQUFJQUJBQUNBQVFBR0FBYUFCd0FIZ0FnQUNJQUk0QWxnQUlBQkFBbXdDakFLZ0FzQUMyQUw0QXZRREZBTW9BMGdCUEFWWUJXZ0VJQUFnQUNBQ01BTm9BWWdGa0FXd0JkQUY4QVgwQmhRR05BWlVCbGdHZUFhTUJsUUdXQWFzQnN3RjhBYnNCd3dGMEFjc0JZd0hUQVFnQTJ3Ry9BT01CZEFGOEFla0I4UUYwQWZrQit3SGlBSFFCZkFFSUFBTUM1Z1FJQUFzQ0VnSUlBQWdBRmdJZUFnZ0FJZ0lwQWdnQU1RSTVBa0FDeWdFSUFBZ0FTQUpRQWxnQ1lBSUlBQWdBQ0FBS0JRb0ZDZ1VUQlJNRkdRVXJCU3NGQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FCZEFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUJvQW1nQ3J3R3ZBUWdBYmdKMkFnZ0FIZ0VJQUFnQUNBRG5BWHNDQ0FBSUFBZ0Fnd0lJQUFnQUNBQUlBQWdBQ0FDS0FnZ0FrUUtaQWdnQVBBREpBQWdBb1FLa0Fxd0NzZ0s2QXNJQ0NBREpBZ2dBMEFJSUFBZ0FDQUFJQU5ZQzNnSUlBQWdBQ0FBSUFBZ0FDQUJBQU9ZQ0NBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFrQVNvQitRSUVBQWdBQ0FBOEFFTUNDQUJDQlFnQUNBQkpCVkFGQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FCVEJWb0ZDQUFJQUZvRkNBQmZCV1VGQ0FBSUFBZ0FDQUFJQUFnQWJRVUlBQWdBQ0FBSUFBZ0FDQUJ6QlhzRmZRV0ZCWW9GaWdXS0JaRUZpZ1dLQllvRm1BV2ZCYVlGcmdXeEJia0ZDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQU1FRkNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFNZ0ZDQURRQlFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBTzRDQ0FBSUFBZ0FpUUFJQUFnQUNBQkFBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBRDBBZ2dBQ0FEOEFnZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBTllGQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQU1EdndBSUFBZ0FKQUlJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDd01UQXdnQUNBQjlCT3NFR3dNakF3Z0FLd015QXdzRllnRTNBL01FUHdNSUFFVURUUU5SQXdnQVdRT3NBR0VEQ0FBSUFBZ0FDQUFJQUFnQUNBQnBBelFGTlFVMkJUY0ZPQVU1QlRvRk5BVTFCVFlGTndVNEJUa0ZPZ1UwQlRVRk5nVTNCVGdGT1FVNkJUUUZOUVUyQlRjRk9BVTVCVG9GTkFVMUJUWUZOd1U0QlRrRk9nVTBCVFVGTmdVM0JUZ0ZPUVU2QlRRRk5RVTJCVGNGT0FVNUJUb0ZOQVUxQlRZRk53VTRCVGtGT2dVMEJUVUZOZ1UzQlRnRk9RVTZCVFFGTlFVMkJUY0ZPQVU1QlRvRk5BVTFCVFlGTndVNEJUa0ZPZ1UwQlRVRk5nVTNCVGdGT1FVNkJUUUZOUVUyQlRjRk9BVTVCVG9GTkFVMUJUWUZOd1U0QlRrRk9nVTBCVFVGTmdVM0JUZ0ZPUVU2QlRRRk5RVTJCVGNGT0FVNUJUb0ZOQVUxQlRZRk53VTRCVGtGT2dVMEJUVUZOZ1UzQlRnRk9RVTZCVFFGTlFVMkJUY0ZPQVU1QlRvRk5BVTFCVFlGTndVNEJUa0ZPZ1UwQlRVRk5nVTNCVGdGT1FVNkJUUUZOUVUyQlRjRk9BVTVCVG9GTkFVMUJUWUZOd1U0QlRrRk9nVTBCVFVGTmdVM0JUZ0ZPUVU2QlRRRk5RVTJCVGNGT0FVNUJUb0ZOQVUxQlRZRk53VTRCVGtGT2dVMEJUVUZOZ1UzQlRnRk9RVTZCVFFGTlFVMkJUY0ZPQVU1QlRvRk5BVTFCVFlGTndVNEJUa0ZPZ1UwQlRVRk5nVTNCVGdGT1FVNkJUUUZOUVUyQlRjRk9BVTVCVG9GTkFVMUJUWUZOd1U0QlRrRk9nVTBCVFVGTmdVM0JUZ0ZPUVU2QlRRRk5RVTJCVGNGT0FVNUJUb0ZOQVUxQlRZRk53VTRCVGtGT2dVMEJUVUZOZ1UzQlRnRk9RVTZCVFFGTlFVMkJUY0ZPQVU1QlRvRk5BVTFCVFlGTndVNEJUa0ZPZ1UwQlRVRk5nVTNCVGdGT1FVNkJUUUZOUVUyQlRjRk9BVTVCVG9GTkFVMUJUWUZOd1U0QlRrRk9nVTBCVFVGTmdVM0JUZ0ZPUVU2QlRRRk5RVTJCVGNGT0FVNUJUb0ZOQVUxQlRZRk53VTRCVGtGT2dVMEJUVUZOZ1UzQlRnRk9RVTZCVFFGTlFVMkJUY0ZPQVU1QlRvRk5BVTFCVFlGTndVNEJUa0ZPZ1UwQlRVRk5nVTNCVGdGT1FVNkJUUUZOUVUyQlRjRk9BVTVCVG9GTkFVMUJUWUZOd1U0QlRrRklRVW9CU3dGQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FCdEF3Z0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQk1BRXdBQ0FBSUFBZ0FDQUFJQUJnQUNBQUlBQWdBQ0FDL0FBZ0FDQUF5QVFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FDQUFJQUF3QUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFBQVJBQklBQWdBQ0FBSUFCUUFTQUFJQUFnQUlBQndBRUFBamdDSUFCc0FxQUMyQUwwQWlnRFFBdHdDK0lKSVFxVkFaVUJXUXFWQVpVQmxRR1ZBWlVCbFFHckM1VUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFYc0tsUUdWQWJBSzZ3c3JER1VNcFF6bERKVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBWlVCbFFHVkFaVUJsUUdWQVpVQmxRR1ZBZkFLQUF1WkE2NEF0d0NKQUxvQzZBRHdBQWdBdUFDZ0Evb0VwZ082QXFzRCtBQUlBQWdBc3dNSUFBZ0FDQUFJQUlrQXV3UDVBZnNCd3dQTEF3Z0FDQUFJQUFnQUNBRFJBOWtEQ0FBSUFPRUQ2UU1JQUFnQUNBQUlBQWdBQ0FEdUEvWURDQUFJQVA0RHlRQUlBQWdBQmdRSUFBZ0FYUUFPQkFnQUNBQUlBQWdBQ0FBSUFCTUVDQUFJQUFnQUNBQUlBQWdBQ0FEOEFBUUJDQUFJQUFnQUdnUWlCQ29FQ0FFeEJBZ0FFQUVJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQTRCQWdBQ0FCQUJFWUVDQUFJQUFnQVRBUVlBUWdBVkFRSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFGb0VDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBT1FFSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FCK0JBY0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFFQUJoZ1NNQkFnQUNBQUlBQWdBbEFRSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBd0FFQUFRQUJBQURBQU1BQXdBREFBUUFCQUFFQUFRQUJBQUVBQVFBQkhBVEFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQWRRTUlBQWdBQ0FBSUFBZ0FDQUFJQU1rQUNBQUlBQWdBZlFNSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FDRkE0a0RDQUFJQUFnQUNBQUlBT2NCQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBSWNEQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFKRURDQUFJQUFnQUNBREZBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUJnQkFnQVpnUUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FiQVFDQlhJRUNBQUlBSGtFQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQkFBSndFUUFDakJLb0VzZ1FJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FDNkJNSUVDQUFJQUFnQUNBQUlBQWdBQ0FCbUJBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQXh3UUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFHWUVDQUFJQUFnQXpnUUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQWlnV0tCWW9GaWdXS0JZb0ZpZ1dLQmQwRlh3VUlBT0lGNmdYeEJZb0YzZ1Q1QlFBR0NBYUtCWW9GaWdXS0JZb0ZpZ1dLQllvRmlnV0tCWW9GaWdYV0JJb0ZpZ1dLQllvRmlnV0tCWW9GaWdXS0JZc0ZFQWFLQllvRmlnV0tCWW9GaWdXS0JSUUdDQUNLQllvRmlnV0tCUWdBQ0FBSUFORUVDQUFJQUJnR2lnVWdCZ2dBSmdZSUFDNEdNd2FLQllvRjB3UTNCajRHaWdXS0JZb0ZpZ1dLQllvRmlnV0tCWW9GaWdXS0JZb0ZpZ1VJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FpZ1dLQllvRmlnV0tCWW9GaWdXS0JZb0ZpZ1dLQllvRmlnV0tCWW9GaWdXS0JZb0ZpZ1dLQllvRmlnV0tCWW9GaWdXS0JZb0ZpZ1dLQllvRmlnV0xCZi8vLy8vLy93UUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFBd0FFQUFRQUFnQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT0FBQUFBQUFBQUFRQURnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVVBQlFBRkFBVUFCUUFGQUFVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUFBQVVBQUFBRkFBVUFBQUFGQUFVQUFBQUZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBRUFBUUFCQUFFQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFVQUJRQUZBQVVBQlFBRkFBVUFBUUFBQUFVQUJRQUZBQVVBQlFBRkFBQUFBQUFGQUFVQUFBQUZBQVVBQlFBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZBQUFBQUFBRkFBVUFBUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJ3QUZBQVVBQlFBRkFBQUFCd0FIQUFjQUFBQUhBQWNBQndBRkFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSEFBY0FCd0FGQUFVQUJRQUZBQWNBQndBRkFBVUFBQUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFIQUFBQUFRQUJBQUFBQUFBQUFBQUFBQUFGQUFVQUJRQUZBQUFBQndBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBSEFBY0FCd0FIQUFjQUFBQUhBQWNBQUFBQUFBVUFCUUFIQUFVQUFRQUhBQUVBQndBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJRQUZBQVVBQlFBRkFBVUFCd0FCQUFVQUJRQUZBQVVBQUFBQUFBQUFBQUFBQUFFQUFRQUJBQUVBQVFBQkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJ3QUZBQVVBQUFBQUFBQUFBQUFBQUFBQUJRQUZBQVVBQlFBRkFBVUFBUUFGQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFVQUJRQUZBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFCUUFOQUFRQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUJBQUVBQVFBQkFBRUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBSEFBVUFCUUFGQUFBQUFBQUFBQWNBQlFBRkFBVUFCUUFGQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFVQUJRQUZBQVVBQUFBRkFBVUFCUUFGQUFVQUFBQUZBQVVBQlFBQUFBVUFCUUFGQUFVQUJRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZBQVVBQlFBQUFBQUFBQUFBQUFVQUJRQUZBQWNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCUUFIQUFVQUFBQUhBQWNBQndBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQndBSEFBY0FCd0FGQUFjQUJ3QUFBQVVBQlFBRkFBVUFCUUFGQUFVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZBQVVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVUFCd0FIQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJRQUFBQVVBQndBSEFBVUFCUUFGQUFVQUFBQUFBQWNBQndBQUFBQUFCd0FIQUFVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVVBQlFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBQUFBQUFCUUFGQUFjQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZBQUFBQndBSEFBY0FCUUFGQUFBQUFBQUFBQUFBQlFBRkFBQUFBQUFGQUFVQUJRQUFBQUFBQUFBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVUFCUUFBQUFBQUFBQUZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQndBRkFBVUFCUUFGQUFVQUFBQUZBQVVBQndBQUFBY0FCd0FGQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZBQVVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGQUFVQUJRQUZBQVVBQlFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVUFBQUFGQUFVQUJ3QUZBQVVBQlFBRkFBQUFBQUFIQUFjQUFBQUFBQWNBQndBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBRkFBVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZBQWNBQndBQUFBQUFBQUFIQUFjQUJ3QUFBQWNBQndBSEFBVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCUUFIQUFjQUJ3QUZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVVBQndBSEFBY0FCd0FBQUFVQUJRQUZBQUFBQlFBRkFBVUFCUUFBQUFBQUFBQUFBQUFBQUFBQUFBVUFCUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJRQUFBQWNBQlFBSEFBY0FCUUFIQUFjQUFBQUZBQWNBQndBQUFBY0FCd0FGQUFVQUFBQUFBQUFBQUFBQUFBQUFBQUFGQUFVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJRQUZBQWNBQndBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFVQUJRQUFBQVVBQndBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVUFBQUFBQUFBQUFBQUZBQWNBQndBRkFBVUFCUUFBQUFVQUFBQUhBQWNBQndBSEFBY0FCd0FIQUFVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFVQUFBQUhBQVVBQlFBRkFBVUFCUUFGQUFVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGQUFBQUJ3QUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBRkFBVUFCUUFGQUFVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFVQUJRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCUUFBQUFVQUFBQUZBQUFBQUFBQUFBQUFCd0FIQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQndBRkFBVUFCUUFGQUFVQUFBQUZBQVVBQUFBQUFBQUFBQUFBQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUFBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVUFCUUFGQUFVQUJ3QUZBQVVBQlFBRkFBVUFCUUFBQUFVQUJRQUhBQWNBQlFBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUhBQWNBQlFBRkFBQUFBQUFBQUFBQUJRQUZBQVVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZBQVVBQlFBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJRQUFBQWNBQlFBRkFBQUFBQUFBQUFBQUFBQUFBQVVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBRkFBVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVVBQlFBSEFBVUFCUUFGQUFVQUJRQUZBQVVBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQVVBQndBSEFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBRkFBVUFCd0FIQUFjQUJ3QUZBQVVBQndBSEFBY0FBQUFBQUFBQUFBQUhBQWNBQlFBSEFBY0FCd0FIQUFjQUJ3QUZBQVVBQlFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJRQUZBQWNBQndBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFjQUJRQUhBQVVBQlFBRkFBVUFCUUFGQUFVQUFBQUZBQUFBQlFBQUFBQUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBY0FCd0FIQUFjQUJ3QUhBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQUFBQUFBVUFCUUFGQUFVQUJRQUhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVVBQlFBRkFBVUFCUUFGQUFVQUJ3QUZBQWNBQndBSEFBY0FCd0FGQUFjQUJ3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGQUFVQUJ3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSEFBVUFCUUFGQUFVQUJ3QUhBQVVBQlFBSEFBVUFCUUFGQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZBQWNBQlFBRkFBY0FCd0FIQUFVQUJ3QUZBQVVBQlFBSEFBY0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFIQUFjQUJRQUZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJRQUZBQVVBQUFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFjQUJRQUZBQVVBQlFBRkFBVUFCUUFBQUFBQUFBQUFBQVVBQUFBQUFBQUFBQUFBQUFBQUJRQUFBQUFBQndBRkFBVUFBQUFBQUFBQUFBQUFBQUFBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUFBQlFBRkFBVUFCUUFGQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVUFCUUFGQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCUUFGQUFVQUJRQUZBQVVBRGdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFPQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFVQUJRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFVQUJRQUZBQVVBQUFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBQUFBQUFBQUFBQUJRQUFBQUFBQUFBRkFBQUFBQUFBQUFBQUJRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCd0FIQUFVQUJRQUhBQUFBQUFBQUFBQUFCUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFjQUJ3QUhBQWNBQlFBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFVQUFBQUFBQUFBQUFBQUFBQUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUhBQWNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkFBY0FCd0FGQUFVQUJRQUZBQWNBQndBRkFBVUFCd0FIQUFBQUFBQUFBQUFBQUFBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVUFCUUFGQUFVQUJRQUZBQWNBQndBRkFBVUFCd0FIQUFVQUJRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkFBY0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVVBQUFBRkFBVUFCUUFBQUFBQUJRQUZBQUFBQUFBQUFBQUFBQUFGQUFVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWNBQlFBRkFBY0FCd0FBQUFBQUFBQUFBQUFBQndBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFjQUJ3QUZBQWNBQndBRkFBY0FCd0FBQUFjQUJRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFVQUJRQUZBQVVBQlFBQUFBQUFBQUFBQUFBQUFBQUZBQVVBQlFBQUFBVUFCUUFBQUFBQUFBQUFBQUFBQlFBRkFBVUFCUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkFBVUFCUUFBQUFBQUFBQUFBQVVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVUFCUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFjQUJRQUhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGQUFVQUJRQUZBQVVBQndBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJ3QUhBQWNBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQndBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFIQUFjQUJ3QUZBQVVBQlFBSEFBY0FCUUFIQUFVQUJRQUFBQUFBQUFBQUFBQUFBQUFGQUFBQUJ3QUhBQWNBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVUFCd0FIQUFjQUJ3QUFBQUFBQndBSEFBQUFBQUFIQUFjQUJ3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQndBSEFBQUFBQUFGQUFVQUJRQUZBQVVBQlFBRkFBQUFBQUFBQUFVQUJRQUZBQVVBQlFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUhBQWNBQndBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQndBSEFBVUFCUUFGQUFjQUJRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCUUFIQUFjQUJRQUZBQVVBQlFBRkFBVUFCd0FGQUFjQUJ3QUZBQWNBQlFBRkFBY0FCUUFGQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBSEFBY0FCUUFGQUFVQUJRQUFBQUFBQndBSEFBY0FCd0FGQUFVQUJ3QUZBQVVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBY0FCd0FIQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFIQUFjQUJRQUhBQVVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVUFCd0FGQUFjQUJ3QUZBQVVBQlFBRkFBVUFCUUFIQUFVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFjQUJ3QUZBQVVBQlFBRkFBY0FCUUFGQUFVQUJRQUZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSEFBY0FCd0FGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFIQUFVQUJRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUhBQWNBQndBRkFBVUFCUUFGQUFBQUFBQUZBQVVBQndBSEFBY0FCd0FGQUFBQUFBQUFBQWNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBRkFBVUFCUUFGQUFVQUJ3QUhBQVVBQlFBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWNBQlFBRkFBVUFCUUFGQUFVQUJRQUFBQVVBQlFBRkFBVUFCUUFGQUFjQUJRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFBQUFIQUFVQUJRQUZBQVVBQlFBRkFBVUFCd0FGQUFVQUJ3QUZBQVVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBRkFBVUFCUUFGQUFVQUFBQUFBQUFBQlFBQUFBVUFCUUFBQUFVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUhBQWNBQndBSEFBY0FBQUFGQUFVQUFBQUhBQWNBQlFBSEFBVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGQUFVQUJ3QUhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZBQVVBQlFBRkFBVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGQUFVQUJRQUZBQVVBQlFBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBQUFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQUFBQUFBQUFBQUFBQUFBQUFBQUJRQUZBQVVBQlFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWNBQndBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFVQUJRQUFBQVVBQlFBRkFBQUFBQUFGQUFVQUJRQUZBQVVBQlFBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJRQUZBQVVBQlFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCUUFGQUFVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBQUFBQUFBQUFBQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVVBQlFBRkFBVUFCUUFBQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBRkFBVUFCUUFGQUFVQUJRQUFBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUZBQVVBQlFBRkFBVUFCUUFGQUFVQUJRQUFBQUFBQlFBRkFBVUFCUUFGQUFVQUJRQUFBQVVBQlFBQUFBVUFCUUFGQUFVQUJRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkFBVUFCUUFGQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCUUFGQUFVQUJRQUZBQVVBQlFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFPQUE0QURnQU9BQTRBRGdBT0FBNEFEZ0FPQUE0QURnQU9BQTRBRGdBT0FBNEFEZ0FPQUE0QURnQU9BQTRBRGdBT0FBNEFEZ0FGQUFVQUJRQUZBQVVBRGdBT0FBNEFEZ0FPQUE0QUR3QVBBQThBRHdBUEFBOEFEd0FQQUE4QUR3QVBBQThBRHdBUEFBOEFEd0FQQUE4QUR3QVBBQThBRHdBUEFBOEFEd0FQQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFjQUJ3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQndBSEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFjQUJ3QUhBQWNBQndBSEFBY0FCd0FIQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBZ0FDQUFJQUFnQUNBQUlBQWdBQ0FBSUFBQUFBQUFBQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBS0FBb0FDZ0FLQUFvQUNnQUtBQW9BQ2dBS0FBb0FDZ0FLQUFvQUNnQUtBQW9BQ2dBS0FBb0FDZ0FLQUFvQUNnQU1BQXdBREFBTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUFBQUFBQUFBQUFBS0FBb0FDZ0FLQUFvQUNnQUtBQW9BQ2dBS0FBb0FDZ0FLQUFvQUNnQUtBQW9BQ2dBS0FBb0FDZ0FLQUFvQUNnQUtBQW9BQ2dBS0FBb0FDZ0FLQUFvQUNnQUFBQUFBQUFBQUFBc0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FDd0FNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFNQUF3QURBQU1BQXdBREFBTUFBd0FEQUFBQUFBQURnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9BQTRBRGdBT0FBNEFEZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURnQU9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTRBRGdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRGdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRGdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRGdBT0FBNEFEZ0FPQUE0QURnQU9BQTRBRGdBT0FBQUFBQUFBQUFBQURnQU9BQTRBQUFBQUFBQUFBQUFBQUFBQUFBQU9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEZ0FPQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURnQU9BQTRBRGdBQUFBNEFEZ0FPQUE0QURnQU9BQUFBRGdBT0FBNEFEZ0FPQUE0QURnQU9BQTRBRGdBT0FBNEFBQUFPQUE0QURnQU9BQTRBRGdBT0FBNEFEZ0FPQUE0QURnQU9BQTRBRGdBT0FBNEFEZ0FPQUE0QURnQU9BQTRBRGdBT0FBNEFEZ0FPQUE0QURnQU9BQTRBRGdBT0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEZ0FPQUE0QURnQU9BQTRBRGdBT0FBNEFEZ0FPQUE0QURnQU9BQTRBRGdBT0FBNEFBQUFBQUE0QURnQU9BQTRBRGdBT0FBNEFEZ0FPQUE0QURnQUFBQTRBQUFBT0FBQUFBQUFBQUFBQUFBQUFBQTRBQUFBQUFBQUFBQUFBQUFBQURnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTRBRGdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEZ0FBQUFBQURnQUFBQUFBQUFBQUFBNEFBQUFPQUFBQUFBQUFBQUFBRGdBT0FBNEFBQUFPQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9BQTRBRGdBT0FBNEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT0FBNEFEZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFPQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT0FBNEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0QURnQU9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRGdBT0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEZ0FBQUFBQUFBQUFBQTRBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9BQUFBRGdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9BQTRBRGdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTRBRGdBT0FBNEFEZ0FPQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTRBRGdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURnQUFBQUFBRGdBT0FBNEFEZ0FPQUE0QURnQU9BQTRBRGdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURnQU9BQTRBRGdBT0FBNEFEZ0FPQUE0QURnQU9BQTRBRGdBT0FBNEFEZ0FPQUE0QURnQUFBQTRBRGdBT0FBNEFEZ0FPQUE0QURnQU9BQTRBRGdBT0FBNEFEZ0FPQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0QUFBQUFBQTRBRGdBT0FBNEFEZ0FPQUE0QURnQU9BQUFBRGdBT0FBNEFEZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFPQUE0QURnQU9BQTRBRGdBT0FBNEFEZ0FPQUE0QURnQU9BQTRBRGdBT0FBNEFEZ0FPQUE0QURnQU9BQTRBQUFBQUFBQUFBQUFBQUFBQURnQU9BQTRBRGdBT0FBNEFEZ0FPQUE0QURnQU9BQTRBRGdBT0FBNEFEZ0FPQUE0QURnQU9BQTRBRGdBT0FBNEFEZ0FPQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTRBRGdBT0FBNEFEZ0FPQUE0QURnQU9BQTRBRGdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFPQUE0QURnQU9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURnQU9BQTRBRGdBT0FBNEFEZ0FPQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURnQU9BQTRBRGdBT0FBNEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBNEFEZ0FPQUE0QURnQU9BQTRBRGdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT0FBNEFEZ0FPQUE0QURnQU9BQTRBRGdBT0FBNEFEZ0FPQUE0QURnQU9BQTRBRGdBT0FBNEFEZ0FPQUE0QURnQU9BQTRBRGdBT0FBNEFBQUFPQUE0QURnQU9BQTRBRGdBQUFBNEFEZ0FPQUE0QURnQU9BQTRBRGdBT0FBNEFEZ0FPQUE0QURnQU9BQTRBRGdBT0FBNEFEZ0FPQUE0QURnQU9BQTRBQUFBQUFBQUFBQUE9IikseHI9QXJyYXkuaXNBcnJheSh2cik/ZnVuY3Rpb24oQSl7Zm9yKHZhciBlPUEubGVuZ3RoLHQ9W10scj0wO3I8ZTtyKz00KXQucHVzaChBW3IrM108PDI0fEFbcisyXTw8MTZ8QVtyKzFdPDw4fEFbcl0pO3JldHVybiB0fSh2cik6bmV3IFVpbnQzMkFycmF5KHZyKSxNcj1BcnJheS5pc0FycmF5KHZyKT9mdW5jdGlvbihBKXtmb3IodmFyIGU9QS5sZW5ndGgsdD1bXSxyPTA7cjxlO3IrPTIpdC5wdXNoKEFbcisxXTw8OHxBW3JdKTtyZXR1cm4gdH0odnIpOm5ldyBVaW50MTZBcnJheSh2ciksYnI9ZnIoTXIsMTIseHJbNF0vMiksRHI9Mj09PXhyWzVdP2ZyKE1yLCgyNCt4cls0XSkvMik6KHZyPXhyLE1yPU1hdGguY2VpbCgoMjQreHJbNF0pLzQpLHZyLnNsaWNlP3ZyLnNsaWNlKE1yLERyKTpuZXcgVWludDMyQXJyYXkoQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodnIsTXIsRHIpKSksbmV3IEhyKHhyWzBdLHhyWzFdLHhyWzJdLHhyWzNdLGJyLERyKSksUnI9IsOXIixOcj1mdW5jdGlvbihBLGUsdCxyLEIpe3ZhciBuPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIscz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobiwic3ZnIiksbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobiwiZm9yZWlnbk9iamVjdCIpO3JldHVybiBzLnNldEF0dHJpYnV0ZU5TKG51bGwsIndpZHRoIixBLnRvU3RyaW5nKCkpLHMuc2V0QXR0cmlidXRlTlMobnVsbCwiaGVpZ2h0IixlLnRvU3RyaW5nKCkpLG4uc2V0QXR0cmlidXRlTlMobnVsbCwid2lkdGgiLCIxMDAlIiksbi5zZXRBdHRyaWJ1dGVOUyhudWxsLCJoZWlnaHQiLCIxMDAlIiksbi5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ4Iix0LnRvU3RyaW5nKCkpLG4uc2V0QXR0cmlidXRlTlMobnVsbCwieSIsci50b1N0cmluZygpKSxuLnNldEF0dHJpYnV0ZU5TKG51bGwsImV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQiLCJ0cnVlIikscy5hcHBlbmRDaGlsZChuKSxuLmFwcGVuZENoaWxkKEIpLHN9LFByPWZ1bmN0aW9uKHIpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihBLGUpe3ZhciB0PW5ldyBJbWFnZTt0Lm9ubG9hZD1mdW5jdGlvbigpe3JldHVybiBBKHQpfSx0Lm9uZXJyb3I9ZSx0LnNyYz0iZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsIitlbmNvZGVVUklDb21wb25lbnQoKG5ldyBYTUxTZXJpYWxpemVyKS5zZXJpYWxpemVUb1N0cmluZyhyKSl9KX0sWHI9e2dldCBTVVBQT1JUX1JBTkdFX0JPVU5EUygpe3ZhciBBPWZ1bmN0aW9uKEEpe2lmKEEuY3JlYXRlUmFuZ2Upe3ZhciBlPUEuY3JlYXRlUmFuZ2UoKTtpZihlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCl7dmFyIHQ9QS5jcmVhdGVFbGVtZW50KCJib3VuZHRlc3QiKTt0LnN0eWxlLmhlaWdodD0iMTIzcHgiLHQuc3R5bGUuZGlzcGxheT0iYmxvY2siLEEuYm9keS5hcHBlbmRDaGlsZCh0KSxlLnNlbGVjdE5vZGUodCk7ZT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGU9TWF0aC5yb3VuZChlLmhlaWdodCk7aWYoQS5ib2R5LnJlbW92ZUNoaWxkKHQpLDEyMz09PWUpcmV0dXJuITB9fXJldHVybiExfShkb2N1bWVudCk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShYciwiU1VQUE9SVF9SQU5HRV9CT1VORFMiLHt2YWx1ZTpBfSksQX0sZ2V0IFNVUFBPUlRfV09SRF9CUkVBS0lORygpe3ZhciBBPVhyLlNVUFBPUlRfUkFOR0VfQk9VTkRTJiZmdW5jdGlvbihBKXt2YXIgZT1BLmNyZWF0ZUVsZW1lbnQoImJvdW5kdGVzdCIpO2Uuc3R5bGUud2lkdGg9IjUwcHgiLGUuc3R5bGUuZGlzcGxheT0iYmxvY2siLGUuc3R5bGUuZm9udFNpemU9IjEycHgiLGUuc3R5bGUubGV0dGVyU3BhY2luZz0iMHB4IixlLnN0eWxlLndvcmRTcGFjaW5nPSIwcHgiLEEuYm9keS5hcHBlbmRDaGlsZChlKTt2YXIgcj1BLmNyZWF0ZVJhbmdlKCk7ZS5pbm5lckhUTUw9ImZ1bmN0aW9uIj09dHlwZW9mIiIucmVwZWF0PyImIzEyODEwNDsiLnJlcGVhdCgxMCk6IiI7dmFyIEI9ZS5maXJzdENoaWxkLHQ9UShCLmRhdGEpLm1hcChmdW5jdGlvbihBKXtyZXR1cm4gZyhBKX0pLG49MCxzPXt9LHQ9dC5ldmVyeShmdW5jdGlvbihBLGUpe3Iuc2V0U3RhcnQoQixuKSxyLnNldEVuZChCLG4rQS5sZW5ndGgpO3ZhciB0PXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bis9QS5sZW5ndGg7QT10Lng+cy54fHx0Lnk+cy55O3JldHVybiBzPXQsMD09PWV8fEF9KTtyZXR1cm4gQS5ib2R5LnJlbW92ZUNoaWxkKGUpLHR9KGRvY3VtZW50KTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KFhyLCJTVVBQT1JUX1dPUkRfQlJFQUtJTkciLHt2YWx1ZTpBfSksQX0sZ2V0IFNVUFBPUlRfU1ZHX0RSQVdJTkcoKXt2YXIgQT1mdW5jdGlvbihBKXt2YXIgZT1uZXcgSW1hZ2UsdD1BLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLEE9dC5nZXRDb250ZXh0KCIyZCIpO2lmKCFBKXJldHVybiExO2Uuc3JjPSJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjwvc3ZnPiI7dHJ5e0EuZHJhd0ltYWdlKGUsMCwwKSx0LnRvRGF0YVVSTCgpfWNhdGNoKEEpe3JldHVybiExfXJldHVybiEwfShkb2N1bWVudCk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShYciwiU1VQUE9SVF9TVkdfRFJBV0lORyIse3ZhbHVlOkF9KSxBfSxnZXQgU1VQUE9SVF9GT1JFSUdOT0JKRUNUX0RSQVdJTkcoKXt2YXIgQT0iZnVuY3Rpb24iPT10eXBlb2YgQXJyYXkuZnJvbSYmImZ1bmN0aW9uIj09dHlwZW9mIHdpbmRvdy5mZXRjaD9mdW5jdGlvbih0KXt2YXIgQT10LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHI9MTAwO0Eud2lkdGg9cixBLmhlaWdodD1yO3ZhciBCPUEuZ2V0Q29udGV4dCgiMmQiKTtpZighQilyZXR1cm4gUHJvbWlzZS5yZWplY3QoITEpO0IuZmlsbFN0eWxlPSJyZ2IoMCwgMjU1LCAwKSIsQi5maWxsUmVjdCgwLDAscixyKTt2YXIgZT1uZXcgSW1hZ2Usbj1BLnRvRGF0YVVSTCgpO2Uuc3JjPW47ZT1OcihyLHIsMCwwLGUpO3JldHVybiBCLmZpbGxTdHlsZT0icmVkIixCLmZpbGxSZWN0KDAsMCxyLHIpLFByKGUpLnRoZW4oZnVuY3Rpb24oQSl7Qi5kcmF3SW1hZ2UoQSwwLDApO3ZhciBlPUIuZ2V0SW1hZ2VEYXRhKDAsMCxyLHIpLmRhdGE7Qi5maWxsU3R5bGU9InJlZCIsQi5maWxsUmVjdCgwLDAscixyKTtBPXQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIEEuc3R5bGUuYmFja2dyb3VuZEltYWdlPSJ1cmwoIituKyIpIixBLnN0eWxlLmhlaWdodD0iMTAwcHgiLExyKGUpP1ByKE5yKHIsciwwLDAsQSkpOlByb21pc2UucmVqZWN0KCExKX0pLnRoZW4oZnVuY3Rpb24oQSl7cmV0dXJuIEIuZHJhd0ltYWdlKEEsMCwwKSxMcihCLmdldEltYWdlRGF0YSgwLDAscixyKS5kYXRhKX0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuITF9KX0oZG9jdW1lbnQpOlByb21pc2UucmVzb2x2ZSghMSk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShYciwiU1VQUE9SVF9GT1JFSUdOT0JKRUNUX0RSQVdJTkciLHt2YWx1ZTpBfSksQX0sZ2V0IFNVUFBPUlRfQ09SU19JTUFHRVMoKXt2YXIgQT12b2lkIDAhPT0obmV3IEltYWdlKS5jcm9zc09yaWdpbjtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KFhyLCJTVVBQT1JUX0NPUlNfSU1BR0VTIix7dmFsdWU6QX0pLEF9LGdldCBTVVBQT1JUX1JFU1BPTlNFX1RZUEUoKXt2YXIgQT0ic3RyaW5nIj09dHlwZW9mKG5ldyBYTUxIdHRwUmVxdWVzdCkucmVzcG9uc2VUeXBlO3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoWHIsIlNVUFBPUlRfUkVTUE9OU0VfVFlQRSIse3ZhbHVlOkF9KSxBfSxnZXQgU1VQUE9SVF9DT1JTX1hIUigpe3ZhciBBPSJ3aXRoQ3JlZGVudGlhbHMiaW4gbmV3IFhNTEh0dHBSZXF1ZXN0O3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoWHIsIlNVUFBPUlRfQ09SU19YSFIiLHt2YWx1ZTpBfSksQX0sZ2V0IFNVUFBPUlRfTkFUSVZFX1RFWFRfU0VHTUVOVEFUSU9OKCl7dmFyIEE9ISgidW5kZWZpbmVkIj09dHlwZW9mIEludGx8fCFJbnRsLlNlZ21lbnRlcik7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShYciwiU1VQUE9SVF9OQVRJVkVfVEVYVF9TRUdNRU5UQVRJT04iLHt2YWx1ZTpBfSksQX19LEpyPWZ1bmN0aW9uKEEsZSl7dGhpcy50ZXh0PUEsdGhpcy5ib3VuZHM9ZX0sWXI9ZnVuY3Rpb24oQSxlKXt2YXIgdD1lLm93bmVyRG9jdW1lbnQ7aWYodCl7dmFyIHI9dC5jcmVhdGVFbGVtZW50KCJodG1sMmNhbnZhc3dyYXBwZXIiKTtyLmFwcGVuZENoaWxkKGUuY2xvbmVOb2RlKCEwKSk7dD1lLnBhcmVudE5vZGU7aWYodCl7dC5yZXBsYWNlQ2hpbGQocixlKTtBPWYoQSxyKTtyZXR1cm4gci5maXJzdENoaWxkJiZ0LnJlcGxhY2VDaGlsZChyLmZpcnN0Q2hpbGQsciksQX19cmV0dXJuIGQuRU1QVFl9LFdyPWZ1bmN0aW9uKEEsZSx0KXt2YXIgcj1BLm93bmVyRG9jdW1lbnQ7aWYoIXIpdGhyb3cgbmV3IEVycm9yKCJOb2RlIGhhcyBubyBvd25lciBkb2N1bWVudCIpO3I9ci5jcmVhdGVSYW5nZSgpO3JldHVybiByLnNldFN0YXJ0KEEsZSksci5zZXRFbmQoQSxlK3QpLHJ9LFpyPWZ1bmN0aW9uKEEpe2lmKFhyLlNVUFBPUlRfTkFUSVZFX1RFWFRfU0VHTUVOVEFUSU9OKXt2YXIgZT1uZXcgSW50bC5TZWdtZW50ZXIodm9pZCAwLHtncmFudWxhcml0eToiZ3JhcGhlbWUifSk7cmV0dXJuIEFycmF5LmZyb20oZS5zZWdtZW50KEEpKS5tYXAoZnVuY3Rpb24oQSl7cmV0dXJuIEEuc2VnbWVudH0pfXJldHVybiBmdW5jdGlvbihBKXtmb3IodmFyIGUsdD1tcihBKSxyPVtdOyEoZT10Lm5leHQoKSkuZG9uZTspZS52YWx1ZSYmci5wdXNoKGUudmFsdWUuc2xpY2UoKSk7cmV0dXJuIHJ9KEEpfSxfcj1mdW5jdGlvbihBLGUpe3JldHVybiAwIT09ZS5sZXR0ZXJTcGFjaW5nP1pyKEEpOmZ1bmN0aW9uKEEsZSl7aWYoWHIuU1VQUE9SVF9OQVRJVkVfVEVYVF9TRUdNRU5UQVRJT04pe3ZhciB0PW5ldyBJbnRsLlNlZ21lbnRlcih2b2lkIDAse2dyYW51bGFyaXR5OiJ3b3JkIn0pO3JldHVybiBBcnJheS5mcm9tKHQuc2VnbWVudChBKSkubWFwKGZ1bmN0aW9uKEEpe3JldHVybiBBLnNlZ21lbnR9KX1yZXR1cm4ganIoQSxlKX0oQSxlKX0scXI9WzMyLDE2MCw0OTYxLDY1NzkyLDY1NzkzLDQxNTMsNDI0MV0sanI9ZnVuY3Rpb24oQSxlKXtmb3IodmFyIHQscj13QShBLHtsaW5lQnJlYWs6ZS5saW5lQnJlYWssd29yZEJyZWFrOiJicmVhay13b3JkIj09PWUub3ZlcmZsb3dXcmFwPyJicmVhay13b3JkIjplLndvcmRCcmVha30pLEI9W107ISh0PXIubmV4dCgpKS5kb25lOykhZnVuY3Rpb24oKXt2YXIgQSxlO3QudmFsdWUmJihBPXQudmFsdWUuc2xpY2UoKSxBPVEoQSksZT0iIixBLmZvckVhY2goZnVuY3Rpb24oQSl7LTE9PT1xci5pbmRleE9mKEEpP2UrPWcoQSk6KGUubGVuZ3RoJiZCLnB1c2goZSksQi5wdXNoKGcoQSkpLGU9IiIpfSksZS5sZW5ndGgmJkIucHVzaChlKSl9KCk7cmV0dXJuIEJ9LHpyPWZ1bmN0aW9uKEEsZSx0KXt2YXIgQixuLHMsbyxpO3RoaXMudGV4dD0kcihlLmRhdGEsdC50ZXh0VHJhbnNmb3JtKSx0aGlzLnRleHRCb3VuZHM9KEI9QSxBPXRoaXMudGV4dCxzPWUsQT1fcihBLG49dCksbz1bXSxpPTAsQS5mb3JFYWNoKGZ1bmN0aW9uKEEpe3ZhciBlLHQscjtuLnRleHREZWNvcmF0aW9uTGluZS5sZW5ndGh8fDA8QS50cmltKCkubGVuZ3RoP1hyLlNVUFBPUlRfUkFOR0VfQk9VTkRTPzE8KHI9V3IocyxpLEEubGVuZ3RoKS5nZXRDbGllbnRSZWN0cygpKS5sZW5ndGg/KGU9WnIoQSksdD0wLGUuZm9yRWFjaChmdW5jdGlvbihBKXtvLnB1c2gobmV3IEpyKEEsZC5mcm9tRE9NUmVjdExpc3QoQixXcihzLHQraSxBLmxlbmd0aCkuZ2V0Q2xpZW50UmVjdHMoKSkpKSx0Kz1BLmxlbmd0aH0pKTpvLnB1c2gobmV3IEpyKEEsZC5mcm9tRE9NUmVjdExpc3QoQixyKSkpOihyPXMuc3BsaXRUZXh0KEEubGVuZ3RoKSxvLnB1c2gobmV3IEpyKEEsWXIoQixzKSkpLHM9cik6WHIuU1VQUE9SVF9SQU5HRV9CT1VORFN8fChzPXMuc3BsaXRUZXh0KEEubGVuZ3RoKSksaSs9QS5sZW5ndGh9KSxvKX0sJHI9ZnVuY3Rpb24oQSxlKXtzd2l0Y2goZSl7Y2FzZSAxOnJldHVybiBBLnRvTG93ZXJDYXNlKCk7Y2FzZSAzOnJldHVybiBBLnJlcGxhY2UoQUIsZUIpO2Nhc2UgMjpyZXR1cm4gQS50b1VwcGVyQ2FzZSgpO2RlZmF1bHQ6cmV0dXJuIEF9fSxBQj0vKF58XHN8OnwtfFwofFwpKShbYS16XSkvZyxlQj1mdW5jdGlvbihBLGUsdCl7cmV0dXJuIDA8QS5sZW5ndGg/ZSt0LnRvVXBwZXJDYXNlKCk6QX0sdEI9KEEockIsU3I9dXIpLHJCKTtmdW5jdGlvbiByQihBLGUpe0E9U3IuY2FsbCh0aGlzLEEsZSl8fHRoaXM7cmV0dXJuIEEuc3JjPWUuY3VycmVudFNyY3x8ZS5zcmMsQS5pbnRyaW5zaWNXaWR0aD1lLm5hdHVyYWxXaWR0aCxBLmludHJpbnNpY0hlaWdodD1lLm5hdHVyYWxIZWlnaHQsQS5jb250ZXh0LmNhY2hlLmFkZEltYWdlKEEuc3JjKSxBfXZhciBCQixuQj0oQShzQixCQj11ciksc0IpO2Z1bmN0aW9uIHNCKEEsZSl7QT1CQi5jYWxsKHRoaXMsQSxlKXx8dGhpcztyZXR1cm4gQS5jYW52YXM9ZSxBLmludHJpbnNpY1dpZHRoPWUud2lkdGgsQS5pbnRyaW5zaWNIZWlnaHQ9ZS5oZWlnaHQsQX12YXIgb0IsaUI9KEEoUUIsb0I9dXIpLFFCKTtmdW5jdGlvbiBRQihBLGUpe3ZhciB0PW9CLmNhbGwodGhpcyxBLGUpfHx0aGlzLHI9bmV3IFhNTFNlcmlhbGl6ZXIsQT1mKEEsZSk7cmV0dXJuIGUuc2V0QXR0cmlidXRlKCJ3aWR0aCIsQS53aWR0aCsicHgiKSxlLnNldEF0dHJpYnV0ZSgiaGVpZ2h0IixBLmhlaWdodCsicHgiKSx0LnN2Zz0iZGF0YTppbWFnZS9zdmcreG1sLCIrZW5jb2RlVVJJQ29tcG9uZW50KHIuc2VyaWFsaXplVG9TdHJpbmcoZSkpLHQuaW50cmluc2ljV2lkdGg9ZS53aWR0aC5iYXNlVmFsLnZhbHVlLHQuaW50cmluc2ljSGVpZ2h0PWUuaGVpZ2h0LmJhc2VWYWwudmFsdWUsdC5jb250ZXh0LmNhY2hlLmFkZEltYWdlKHQuc3ZnKSx0fXZhciBjQixhQj0oQShnQixjQj11ciksZ0IpO2Z1bmN0aW9uIGdCKEEsZSl7QT1jQi5jYWxsKHRoaXMsQSxlKXx8dGhpcztyZXR1cm4gQS52YWx1ZT1lLnZhbHVlLEF9dmFyIHdCLFVCPShBKGxCLHdCPXVyKSxsQik7ZnVuY3Rpb24gbEIoQSxlKXtBPXdCLmNhbGwodGhpcyxBLGUpfHx0aGlzO3JldHVybiBBLnN0YXJ0PWUuc3RhcnQsQS5yZXZlcnNlZD0iYm9vbGVhbiI9PXR5cGVvZiBlLnJldmVyc2VkJiYhMD09PWUucmV2ZXJzZWQsQX12YXIgQ0IsdUI9W3t0eXBlOjE1LGZsYWdzOjAsdW5pdDoicHgiLG51bWJlcjozfV0sRkI9W3t0eXBlOjE2LGZsYWdzOjAsbnVtYmVyOjUwfV0saEI9ImNoZWNrYm94IixkQj0icmFkaW8iLGZCPSJwYXNzd29yZCIsSEI9NzA3NDA2NTkxLHBCPShBKEVCLENCPXVyKSxFQik7ZnVuY3Rpb24gRUIoQSxlKXt2YXIgdD1DQi5jYWxsKHRoaXMsQSxlKXx8dGhpcztzd2l0Y2godC50eXBlPWUudHlwZS50b0xvd2VyQ2FzZSgpLHQuY2hlY2tlZD1lLmNoZWNrZWQsdC52YWx1ZT0wPT09KGU9KEE9ZSkudHlwZT09PWZCP25ldyBBcnJheShBLnZhbHVlLmxlbmd0aCsxKS5qb2luKCLigKIiKTpBLnZhbHVlKS5sZW5ndGg/QS5wbGFjZWhvbGRlcnx8IiI6ZSx0LnR5cGUhPT1oQiYmdC50eXBlIT09ZEJ8fCh0LnN0eWxlcy5iYWNrZ3JvdW5kQ29sb3I9MzczOTE0ODAzMSx0LnN0eWxlcy5ib3JkZXJUb3BDb2xvcj10LnN0eWxlcy5ib3JkZXJSaWdodENvbG9yPXQuc3R5bGVzLmJvcmRlckJvdHRvbUNvbG9yPXQuc3R5bGVzLmJvcmRlckxlZnRDb2xvcj0yNzc5MDk2NTc1LHQuc3R5bGVzLmJvcmRlclRvcFdpZHRoPXQuc3R5bGVzLmJvcmRlclJpZ2h0V2lkdGg9dC5zdHlsZXMuYm9yZGVyQm90dG9tV2lkdGg9dC5zdHlsZXMuYm9yZGVyTGVmdFdpZHRoPTEsdC5zdHlsZXMuYm9yZGVyVG9wU3R5bGU9dC5zdHlsZXMuYm9yZGVyUmlnaHRTdHlsZT10LnN0eWxlcy5ib3JkZXJCb3R0b21TdHlsZT10LnN0eWxlcy5ib3JkZXJMZWZ0U3R5bGU9MSx0LnN0eWxlcy5iYWNrZ3JvdW5kQ2xpcD1bMF0sdC5zdHlsZXMuYmFja2dyb3VuZE9yaWdpbj1bMF0sdC5ib3VuZHM9KGU9dC5ib3VuZHMpLndpZHRoPmUuaGVpZ2h0P25ldyBkKGUubGVmdCsoZS53aWR0aC1lLmhlaWdodCkvMixlLnRvcCxlLmhlaWdodCxlLmhlaWdodCk6ZS53aWR0aDxlLmhlaWdodD9uZXcgZChlLmxlZnQsZS50b3ArKGUuaGVpZ2h0LWUud2lkdGgpLzIsZS53aWR0aCxlLndpZHRoKTplKSx0LnR5cGUpe2Nhc2UgaEI6dC5zdHlsZXMuYm9yZGVyVG9wUmlnaHRSYWRpdXM9dC5zdHlsZXMuYm9yZGVyVG9wTGVmdFJhZGl1cz10LnN0eWxlcy5ib3JkZXJCb3R0b21SaWdodFJhZGl1cz10LnN0eWxlcy5ib3JkZXJCb3R0b21MZWZ0UmFkaXVzPXVCO2JyZWFrO2Nhc2UgZEI6dC5zdHlsZXMuYm9yZGVyVG9wUmlnaHRSYWRpdXM9dC5zdHlsZXMuYm9yZGVyVG9wTGVmdFJhZGl1cz10LnN0eWxlcy5ib3JkZXJCb3R0b21SaWdodFJhZGl1cz10LnN0eWxlcy5ib3JkZXJCb3R0b21MZWZ0UmFkaXVzPUZCfXJldHVybiB0fXZhciBJQix5Qj0oQShLQixJQj11ciksS0IpO2Z1bmN0aW9uIEtCKEEsZSl7QT1JQi5jYWxsKHRoaXMsQSxlKXx8dGhpcyxlPWUub3B0aW9uc1tlLnNlbGVjdGVkSW5kZXh8fDBdO3JldHVybiBBLnZhbHVlPWUmJmUudGV4dHx8IiIsQX12YXIgbUIsTEI9KEEoYkIsbUI9dXIpLGJCKTtmdW5jdGlvbiBiQihBLGUpe0E9bUIuY2FsbCh0aGlzLEEsZSl8fHRoaXM7cmV0dXJuIEEudmFsdWU9ZS52YWx1ZSxBfXZhciBEQix2Qj0oQSh4QixEQj11cikseEIpO2Z1bmN0aW9uIHhCKEEsZSl7dmFyIHQscixCPURCLmNhbGwodGhpcyxBLGUpfHx0aGlzO0Iuc3JjPWUuc3JjLEIud2lkdGg9cGFyc2VJbnQoZS53aWR0aCwxMCl8fDAsQi5oZWlnaHQ9cGFyc2VJbnQoZS5oZWlnaHQsMTApfHwwLEIuYmFja2dyb3VuZENvbG9yPUIuc3R5bGVzLmJhY2tncm91bmRDb2xvcjt0cnl7ZS5jb250ZW50V2luZG93JiZlLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQmJmUuY29udGVudFdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJihCLnRyZWU9a0IoQSxlLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSx0PWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ/ZmUoQSxnZXRDb21wdXRlZFN0eWxlKGUuY29udGVudFdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmJhY2tncm91bmRDb2xvcik6TGUuVFJBTlNQQVJFTlQscj1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuYm9keT9mZShBLGdldENvbXB1dGVkU3R5bGUoZS5jb250ZW50V2luZG93LmRvY3VtZW50LmJvZHkpLmJhY2tncm91bmRDb2xvcik6TGUuVFJBTlNQQVJFTlQsQi5iYWNrZ3JvdW5kQ29sb3I9b2UodCk/b2Uocik/Qi5zdHlsZXMuYmFja2dyb3VuZENvbG9yOnI6dCl9Y2F0Y2goQSl7fXJldHVybiBCfWZ1bmN0aW9uIE1CKEEpe3JldHVybiJWSURFTyI9PT1BLnRhZ05hbWV9ZnVuY3Rpb24gU0IoQSl7cmV0dXJuIlNUWUxFIj09PUEudGFnTmFtZX1mdW5jdGlvbiBUQihBKXtyZXR1cm4gMDxBLnRhZ05hbWUuaW5kZXhPZigiLSIpfXZhciBHQj1bIk9MIiwiVUwiLCJNRU5VIl0sT0I9ZnVuY3Rpb24oZSxBLHQscil7Zm9yKHZhciBCPUEuZmlyc3RDaGlsZDtCO0I9cyl7dmFyIG4scz1CLm5leHRTaWJsaW5nO1BCKEIpJiYwPEIuZGF0YS50cmltKCkubGVuZ3RoP3QudGV4dE5vZGVzLnB1c2gobmV3IHpyKGUsQix0LnN0eWxlcykpOlhCKEIpJiYocm4oQikmJkIuYXNzaWduZWROb2Rlcz9CLmFzc2lnbmVkTm9kZXMoKS5mb3JFYWNoKGZ1bmN0aW9uKEEpe3JldHVybiBPQihlLEEsdCxyKX0pOihuPVZCKGUsQikpLnN0eWxlcy5pc1Zpc2libGUoKSYmKFJCKEIsbixyKT9uLmZsYWdzfD00Ok5CKG4uc3R5bGVzKSYmKG4uZmxhZ3N8PTIpLC0xIT09R0IuaW5kZXhPZihCLnRhZ05hbWUpJiYobi5mbGFnc3w9OCksdC5lbGVtZW50cy5wdXNoKG4pLEIuc2xvdCxCLnNoYWRvd1Jvb3Q/T0IoZSxCLnNoYWRvd1Jvb3QsbixyKTplbihCKXx8cUIoQil8fHRuKEIpfHxPQihlLEIsbixyKSkpfX0sVkI9ZnVuY3Rpb24oQSxlKXtyZXR1cm4gbmV3KCRCKGUpP3RCOnpCKGUpP25COnFCKGUpP2lCOldCKGUpP2FCOlpCKGUpP1VCOl9CKGUpP3BCOnRuKGUpP3lCOmVuKGUpP0xCOkFuKGUpP3ZCOnVyKShBLGUpfSxrQj1mdW5jdGlvbihBLGUpe3ZhciB0PVZCKEEsZSk7cmV0dXJuIHQuZmxhZ3N8PTQsT0IoQSxlLHQsdCksdH0sUkI9ZnVuY3Rpb24oQSxlLHQpe3JldHVybiBlLnN0eWxlcy5pc1Bvc2l0aW9uZWRXaXRoWkluZGV4KCl8fGUuc3R5bGVzLm9wYWNpdHk8MXx8ZS5zdHlsZXMuaXNUcmFuc2Zvcm1lZCgpfHxqQihBKSYmdC5zdHlsZXMuaXNUcmFuc3BhcmVudCgpfSxOQj1mdW5jdGlvbihBKXtyZXR1cm4gQS5pc1Bvc2l0aW9uZWQoKXx8QS5pc0Zsb2F0aW5nKCl9LFBCPWZ1bmN0aW9uKEEpe3JldHVybiBBLm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREV9LFhCPWZ1bmN0aW9uKEEpe3JldHVybiBBLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREV9LEpCPWZ1bmN0aW9uKEEpe3JldHVybiBYQihBKSYmdm9pZCAwIT09QS5zdHlsZSYmIVlCKEEpfSxZQj1mdW5jdGlvbihBKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIEEuY2xhc3NOYW1lfSxXQj1mdW5jdGlvbihBKXtyZXR1cm4iTEkiPT09QS50YWdOYW1lfSxaQj1mdW5jdGlvbihBKXtyZXR1cm4iT0wiPT09QS50YWdOYW1lfSxfQj1mdW5jdGlvbihBKXtyZXR1cm4iSU5QVVQiPT09QS50YWdOYW1lfSxxQj1mdW5jdGlvbihBKXtyZXR1cm4ic3ZnIj09PUEudGFnTmFtZX0sakI9ZnVuY3Rpb24oQSl7cmV0dXJuIkJPRFkiPT09QS50YWdOYW1lfSx6Qj1mdW5jdGlvbihBKXtyZXR1cm4iQ0FOVkFTIj09PUEudGFnTmFtZX0sJEI9ZnVuY3Rpb24oQSl7cmV0dXJuIklNRyI9PT1BLnRhZ05hbWV9LEFuPWZ1bmN0aW9uKEEpe3JldHVybiJJRlJBTUUiPT09QS50YWdOYW1lfSxlbj1mdW5jdGlvbihBKXtyZXR1cm4iVEVYVEFSRUEiPT09QS50YWdOYW1lfSx0bj1mdW5jdGlvbihBKXtyZXR1cm4iU0VMRUNUIj09PUEudGFnTmFtZX0scm49ZnVuY3Rpb24oQSl7cmV0dXJuIlNMT1QiPT09QS50YWdOYW1lfSxCbj0obm4ucHJvdG90eXBlLmdldENvdW50ZXJWYWx1ZT1mdW5jdGlvbihBKXtBPXRoaXMuY291bnRlcnNbQV07cmV0dXJuIEEmJkEubGVuZ3RoP0FbQS5sZW5ndGgtMV06MX0sbm4ucHJvdG90eXBlLmdldENvdW50ZXJWYWx1ZXM9ZnVuY3Rpb24oQSl7QT10aGlzLmNvdW50ZXJzW0FdO3JldHVybiBBfHxbXX0sbm4ucHJvdG90eXBlLnBvcD1mdW5jdGlvbihBKXt2YXIgZT10aGlzO0EuZm9yRWFjaChmdW5jdGlvbihBKXtyZXR1cm4gZS5jb3VudGVyc1tBXS5wb3AoKX0pfSxubi5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24oQSl7dmFyIHQ9dGhpcyxlPUEuY291bnRlckluY3JlbWVudCxBPUEuY291bnRlclJlc2V0LHI9ITA7bnVsbCE9PWUmJmUuZm9yRWFjaChmdW5jdGlvbihBKXt2YXIgZT10LmNvdW50ZXJzW0EuY291bnRlcl07ZSYmMCE9PUEuaW5jcmVtZW50JiYocj0hMSxlLmxlbmd0aHx8ZS5wdXNoKDEpLGVbTWF0aC5tYXgoMCxlLmxlbmd0aC0xKV0rPUEuaW5jcmVtZW50KX0pO3ZhciBCPVtdO3JldHVybiByJiZBLmZvckVhY2goZnVuY3Rpb24oQSl7dmFyIGU9dC5jb3VudGVyc1tBLmNvdW50ZXJdO0IucHVzaChBLmNvdW50ZXIpLChlPWV8fCh0LmNvdW50ZXJzW0EuY291bnRlcl09W10pKS5wdXNoKEEucmVzZXQpfSksQn0sbm4pO2Z1bmN0aW9uIG5uKCl7dGhpcy5jb3VudGVycz17fX1mdW5jdGlvbiBzbihyLEEsZSxCLHQsbil7cmV0dXJuIHI8QXx8ZTxyP0ZuKHIsdCwwPG4ubGVuZ3RoKTpCLmludGVnZXJzLnJlZHVjZShmdW5jdGlvbihBLGUsdCl7Zm9yKDtlPD1yOylyLT1lLEErPUIudmFsdWVzW3RdO3JldHVybiBBfSwiIikrbn1mdW5jdGlvbiBvbihBLGUsdCxyKXtmb3IodmFyIEI9IiI7dHx8QS0tLEI9cihBKStCLGU8PShBLz1lKSplOyk7cmV0dXJuIEJ9ZnVuY3Rpb24gUW4oQSxlLHQscixCKXt2YXIgbj10LWUrMTtyZXR1cm4oQTwwPyItIjoiIikrKG9uKE1hdGguYWJzKEEpLG4scixmdW5jdGlvbihBKXtyZXR1cm4gZyhNYXRoLmZsb29yKEElbikrZSl9KStCKX1mdW5jdGlvbiBjbihBLGUsdCl7dm9pZCAwPT09dCYmKHQ9Ii4gIik7dmFyIHI9ZS5sZW5ndGg7cmV0dXJuIG9uKE1hdGguYWJzKEEpLHIsITEsZnVuY3Rpb24oQSl7cmV0dXJuIGVbTWF0aC5mbG9vcihBJXIpXX0pK3R9ZnVuY3Rpb24gYW4oQSxlLHQscixCLG4pe2lmKEE8LTk5OTl8fDk5OTk8QSlyZXR1cm4gRm4oQSw0LDA8Qi5sZW5ndGgpO3ZhciBzPU1hdGguYWJzKEEpLG89QjtpZigwPT09cylyZXR1cm4gZVswXStvO2Zvcih2YXIgaT0wOzA8cyYmaTw9NDtpKyspe3ZhciBRPXMlMTA7MD09USYmUHQobiwxKSYmIiIhPT1vP289ZVtRXStvOjE8UXx8MT09USYmMD09PWl8fDE9PVEmJjE9PT1pJiZQdChuLDIpfHwxPT1RJiYxPT09aSYmUHQobiw0KSYmMTAwPEF8fDE9PVEmJjE8aSYmUHQobiw4KT9vPWVbUV0rKDA8aT90W2ktMV06IiIpK286MT09USYmMDxpJiYobz10W2ktMV0rbykscz1NYXRoLmZsb29yKHMvMTApfXJldHVybihBPDA/cjoiIikrb312YXIgZ24sd249e2ludGVnZXJzOlsxZTMsOTAwLDUwMCw0MDAsMTAwLDkwLDUwLDQwLDEwLDksNSw0LDFdLHZhbHVlczpbIk0iLCJDTSIsIkQiLCJDRCIsIkMiLCJYQyIsIkwiLCJYTCIsIlgiLCJJWCIsIlYiLCJJViIsIkkiXX0sVW49e2ludGVnZXJzOls5ZTMsOGUzLDdlMyw2ZTMsNWUzLDRlMywzZTMsMmUzLDFlMyw5MDAsODAwLDcwMCw2MDAsNTAwLDQwMCwzMDAsMjAwLDEwMCw5MCw4MCw3MCw2MCw1MCw0MCwzMCwyMCwxMCw5LDgsNyw2LDUsNCwzLDIsMV0sdmFsdWVzOlsi1ZQiLCLVkyIsItWSIiwi1ZEiLCLVkCIsItWPIiwi1Y4iLCLVjSIsItWMIiwi1YsiLCLViiIsItWJIiwi1YgiLCLVhyIsItWGIiwi1YUiLCLVhCIsItWDIiwi1YIiLCLVgSIsItWAIiwi1L8iLCLUviIsItS9Iiwi1LwiLCLUuyIsItS6Iiwi1LkiLCLUuCIsItS3Iiwi1LYiLCLUtSIsItS0Iiwi1LMiLCLUsiIsItSxIl19LGxuPXtpbnRlZ2VyczpbMWU0LDllMyw4ZTMsN2UzLDZlMyw1ZTMsNGUzLDNlMywyZTMsMWUzLDQwMCwzMDAsMjAwLDEwMCw5MCw4MCw3MCw2MCw1MCw0MCwzMCwyMCwxOSwxOCwxNywxNiwxNSwxMCw5LDgsNyw2LDUsNCwzLDIsMV0sdmFsdWVzOlsi15nXsyIsIteY17MiLCLXl9ezIiwi15bXsyIsIteV17MiLCLXlNezIiwi15PXsyIsIteS17MiLCLXkdezIiwi15DXsyIsIteqIiwi16kiLCLXqCIsItenIiwi16YiLCLXpCIsIteiIiwi16EiLCLXoCIsIteeIiwi15wiLCLXmyIsIteZ15giLCLXmdeXIiwi15nXliIsIteY15YiLCLXmNeVIiwi15kiLCLXmCIsIteXIiwi15YiLCLXlSIsIteUIiwi15MiLCLXkiIsIteRIiwi15AiXX0sQ249e2ludGVnZXJzOlsxZTQsOWUzLDhlMyw3ZTMsNmUzLDVlMyw0ZTMsM2UzLDJlMywxZTMsOTAwLDgwMCw3MDAsNjAwLDUwMCw0MDAsMzAwLDIwMCwxMDAsOTAsODAsNzAsNjAsNTAsNDAsMzAsMjAsMTAsOSw4LDcsNiw1LDQsMywyLDFdLHZhbHVlczpbIuGDtSIsIuGDsCIsIuGDryIsIuGDtCIsIuGDriIsIuGDrSIsIuGDrCIsIuGDqyIsIuGDqiIsIuGDqSIsIuGDqCIsIuGDpyIsIuGDpiIsIuGDpSIsIuGDpCIsIuGDsyIsIuGDoiIsIuGDoSIsIuGDoCIsIuGDnyIsIuGDniIsIuGDnSIsIuGDsiIsIuGDnCIsIuGDmyIsIuGDmiIsIuGDmSIsIuGDmCIsIuGDlyIsIuGDsSIsIuGDliIsIuGDlSIsIuGDlCIsIuGDkyIsIuGDkiIsIuGDkSIsIuGDkCJdfSx1bj0i66eI7J2064SI7IqkIixGbj1mdW5jdGlvbihBLGUsdCl7dmFyIHI9dD8iLiAiOiIiLEI9dD8i44CBIjoiIixuPXQ/IiwgIjoiIixzPXQ/IiAiOiIiO3N3aXRjaChlKXtjYXNlIDA6cmV0dXJuIuKAoiIrcztjYXNlIDE6cmV0dXJuIuKXpiIrcztjYXNlIDI6cmV0dXJuIuKXviIrcztjYXNlIDU6dmFyIG89UW4oQSw0OCw1NywhMCxyKTtyZXR1cm4gby5sZW5ndGg8ND8iMCIrbzpvO2Nhc2UgNDpyZXR1cm4gY24oQSwi44CH5LiA5LqM5LiJ5Zub5LqU5YWt5LiD5YWr5LmdIixCKTtjYXNlIDY6cmV0dXJuIHNuKEEsMSwzOTk5LHduLDMscikudG9Mb3dlckNhc2UoKTtjYXNlIDc6cmV0dXJuIHNuKEEsMSwzOTk5LHduLDMscik7Y2FzZSA4OnJldHVybiBRbihBLDk0NSw5NjksITEscik7Y2FzZSA5OnJldHVybiBRbihBLDk3LDEyMiwhMSxyKTtjYXNlIDEwOnJldHVybiBRbihBLDY1LDkwLCExLHIpO2Nhc2UgMTE6cmV0dXJuIFFuKEEsMTYzMiwxNjQxLCEwLHIpO2Nhc2UgMTI6Y2FzZSA0OTpyZXR1cm4gc24oQSwxLDk5OTksVW4sMyxyKTtjYXNlIDM1OnJldHVybiBzbihBLDEsOTk5OSxVbiwzLHIpLnRvTG93ZXJDYXNlKCk7Y2FzZSAxMzpyZXR1cm4gUW4oQSwyNTM0LDI1NDMsITAscik7Y2FzZSAxNDpjYXNlIDMwOnJldHVybiBRbihBLDYxMTIsNjEyMSwhMCxyKTtjYXNlIDE1OnJldHVybiBjbihBLCLlrZDkuJHlr4Xlja/ovrDlt7PljYjmnKrnlLPphYnmiIzkuqUiLEIpO2Nhc2UgMTY6cmV0dXJuIGNuKEEsIueUsuS5meS4meS4geaIiuW3seW6mui+m+WjrOeZuCIsQik7Y2FzZSAxNzpjYXNlIDQ4OnJldHVybiBhbihBLCLpm7bkuIDkuozkuInlm5vkupTlha3kuIPlhavkuZ0iLCLljYHnmb7ljYPokKwiLCLosqAiLEIsMTQpO2Nhc2UgNDc6cmV0dXJuIGFuKEEsIumbtuWjueiys+WPg+iChuS8jemZuOafkuaNjOeOliIsIuaLvuS9sOS7n+iQrCIsIuiyoCIsQiwxNSk7Y2FzZSA0MjpyZXR1cm4gYW4oQSwi6Zu25LiA5LqM5LiJ5Zub5LqU5YWt5LiD5YWr5LmdIiwi5Y2B55m+5Y2D6JCsIiwi6LSfIixCLDE0KTtjYXNlIDQxOnJldHVybiBhbihBLCLpm7blo7notLDlj4HogobkvI3pmYbmn5LmjYznjpYiLCLmi77kvbDku5/okKwiLCLotJ8iLEIsMTUpO2Nhc2UgMjY6cmV0dXJuIGFuKEEsIuOAh+S4gOS6jOS4ieWbm+S6lOWFreS4g+WFq+S5nSIsIuWNgeeZvuWNg+S4hyIsIuODnuOCpOODiuOCuSIsQiwwKTtjYXNlIDI1OnJldHVybiBhbihBLCLpm7blo7HlvJDlj4Llm5vkvI3lha3kuIPlhavkuZ0iLCLmi77nmb7ljYPkuIciLCLjg57jgqTjg4rjgrkiLEIsNyk7Y2FzZSAzMTpyZXR1cm4gYW4oQSwi7JiB7J287J207IK87IKs7Jik7Jyh7Lmg7YyU6rWsIiwi7Iut67Cx7LKc66eMIix1bixuLDcpO2Nhc2UgMzM6cmV0dXJuIGFuKEEsIumbtuS4gOS6jOS4ieWbm+S6lOWFreS4g+WFq+S5nSIsIuWNgeeZvuWNg+iQrCIsdW4sbiwwKTtjYXNlIDMyOnJldHVybiBhbihBLCLpm7blo7nosrPlj4Plm5vkupTlha3kuIPlhavkuZ0iLCLmi77nmb7ljYMiLHVuLG4sNyk7Y2FzZSAxODpyZXR1cm4gUW4oQSwyNDA2LDI0MTUsITAscik7Y2FzZSAyMDpyZXR1cm4gc24oQSwxLDE5OTk5LENuLDMscik7Y2FzZSAyMTpyZXR1cm4gUW4oQSwyNzkwLDI3OTksITAscik7Y2FzZSAyMjpyZXR1cm4gUW4oQSwyNjYyLDI2NzEsITAscik7Y2FzZSAyMjpyZXR1cm4gc24oQSwxLDEwOTk5LGxuLDMscik7Y2FzZSAyMzpyZXR1cm4gY24oQSwi44GC44GE44GG44GI44GK44GL44GN44GP44GR44GT44GV44GX44GZ44Gb44Gd44Gf44Gh44Gk44Gm44Go44Gq44Gr44Gs44Gt44Gu44Gv44Gy44G144G444G744G+44G/44KA44KB44KC44KE44KG44KI44KJ44KK44KL44KM44KN44KP44KQ44KR44KS44KTIik7Y2FzZSAyNDpyZXR1cm4gY24oQSwi44GE44KN44Gv44Gr44G744G444Go44Gh44KK44Gs44KL44KS44KP44GL44KI44Gf44KM44Gd44Gk44Gt44Gq44KJ44KA44GG44KQ44Gu44GK44GP44KE44G+44GR44G144GT44GI44Gm44GC44GV44GN44KG44KB44G/44GX44KR44Gy44KC44Gb44GZIik7Y2FzZSAyNzpyZXR1cm4gUW4oQSwzMzAyLDMzMTEsITAscik7Y2FzZSAyODpyZXR1cm4gY24oQSwi44Ki44Kk44Km44Ko44Kq44Kr44Kt44Kv44Kx44Kz44K144K344K544K744K944K/44OB44OE44OG44OI44OK44OL44OM44ON44OO44OP44OS44OV44OY44Ob44Oe44Of44Og44Oh44Oi44Ok44Om44Oo44Op44Oq44Or44Os44Ot44Ov44Ow44Ox44Oy44OzIixCKTtjYXNlIDI5OnJldHVybiBjbihBLCLjgqTjg63jg4/jg4vjg5vjg5jjg4jjg4Hjg6rjg4zjg6vjg7Ljg6/jgqvjg6jjgr/jg6zjgr3jg4Tjg43jg4rjg6njg6Djgqbjg7Djg47jgqrjgq/jg6Tjg57jgrHjg5XjgrPjgqjjg4bjgqLjgrXjgq3jg6bjg6Hjg5/jgrfjg7Hjg5Ljg6LjgrvjgrkiLEIpO2Nhc2UgMzQ6cmV0dXJuIFFuKEEsMzc5MiwzODAxLCEwLHIpO2Nhc2UgMzc6cmV0dXJuIFFuKEEsNjE2MCw2MTY5LCEwLHIpO2Nhc2UgMzg6cmV0dXJuIFFuKEEsNDE2MCw0MTY5LCEwLHIpO2Nhc2UgMzk6cmV0dXJuIFFuKEEsMjkxOCwyOTI3LCEwLHIpO2Nhc2UgNDA6cmV0dXJuIFFuKEEsMTc3NiwxNzg1LCEwLHIpO2Nhc2UgNDM6cmV0dXJuIFFuKEEsMzA0NiwzMDU1LCEwLHIpO2Nhc2UgNDQ6cmV0dXJuIFFuKEEsMzE3NCwzMTgzLCEwLHIpO2Nhc2UgNDU6cmV0dXJuIFFuKEEsMzY2NCwzNjczLCEwLHIpO2Nhc2UgNDY6cmV0dXJuIFFuKEEsMzg3MiwzODgxLCEwLHIpO2RlZmF1bHQ6cmV0dXJuIFFuKEEsNDgsNTcsITAscil9fSxobj0iZGF0YS1odG1sMmNhbnZhcy1pZ25vcmUiLGRuPShmbi5wcm90b3R5cGUudG9JRnJhbWU9ZnVuY3Rpb24oQSxyKXt2YXIgZT10aGlzLEI9cG4oQSxyKTtpZighQi5jb250ZW50V2luZG93KXJldHVybiBQcm9taXNlLnJlamVjdCgiVW5hYmxlIHRvIGZpbmQgaWZyYW1lIHdpbmRvdyIpO3ZhciB0PUEuZGVmYXVsdFZpZXcucGFnZVhPZmZzZXQsbj1BLmRlZmF1bHRWaWV3LnBhZ2VZT2Zmc2V0LHM9Qi5jb250ZW50V2luZG93LG89cy5kb2N1bWVudCxBPUluKEIpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gYShlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSx0O3JldHVybiBIKHRoaXMsZnVuY3Rpb24oQSl7c3dpdGNoKEEubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5zY3JvbGxlZEVsZW1lbnRzLmZvckVhY2goYm4pLHMmJihzLnNjcm9sbFRvKHIubGVmdCxyLnRvcCksIS8oaVBhZHxpUGhvbmV8aVBvZCkvZy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfHxzLnNjcm9sbFk9PT1yLnRvcCYmcy5zY3JvbGxYPT09ci5sZWZ0fHwodGhpcy5jb250ZXh0LmxvZ2dlci53YXJuKCJVbmFibGUgdG8gcmVzdG9yZSBzY3JvbGwgcG9zaXRpb24gZm9yIGNsb25lZCBkb2N1bWVudCIpLHRoaXMuY29udGV4dC53aW5kb3dCb3VuZHM9dGhpcy5jb250ZXh0LndpbmRvd0JvdW5kcy5hZGQocy5zY3JvbGxYLXIubGVmdCxzLnNjcm9sbFktci50b3AsMCwwKSkpLGU9dGhpcy5vcHRpb25zLm9uY2xvbmUsdm9pZCAwPT09KHQ9dGhpcy5jbG9uZWRSZWZlcmVuY2VFbGVtZW50KT9bMixQcm9taXNlLnJlamVjdCgiRXJyb3IgZmluZGluZyB0aGUgIit0aGlzLnJlZmVyZW5jZUVsZW1lbnQubm9kZU5hbWUrIiBpbiB0aGUgY2xvbmVkIGRvY3VtZW50IildOm8uZm9udHMmJm8uZm9udHMucmVhZHk/WzQsby5mb250cy5yZWFkeV06WzMsMl07Y2FzZSAxOkEuc2VudCgpLEEubGFiZWw9MjtjYXNlIDI6cmV0dXJuLyhBcHBsZVdlYktpdCkvZy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpP1s0LEVuKG8pXTpbMyw0XTtjYXNlIDM6QS5zZW50KCksQS5sYWJlbD00O2Nhc2UgNDpyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZT9bMixQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUobyx0KX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gQn0pXTpbMixCXX19KX0pfSk7cmV0dXJuIG8ub3BlbigpLG8ud3JpdGUobW4oZG9jdW1lbnQuZG9jdHlwZSkrIjxodG1sPjwvaHRtbD4iKSxMbih0aGlzLnJlZmVyZW5jZUVsZW1lbnQub3duZXJEb2N1bWVudCx0LG4pLG8ucmVwbGFjZUNoaWxkKG8uYWRvcHROb2RlKHRoaXMuZG9jdW1lbnRFbGVtZW50KSxvLmRvY3VtZW50RWxlbWVudCksby5jbG9zZSgpLEF9LGZuLnByb3RvdHlwZS5jcmVhdGVFbGVtZW50Q2xvbmU9ZnVuY3Rpb24oQSl7aWYoQ3IoQSwyKSx6QihBKSlyZXR1cm4gdGhpcy5jcmVhdGVDYW52YXNDbG9uZShBKTtpZihNQihBKSlyZXR1cm4gdGhpcy5jcmVhdGVWaWRlb0Nsb25lKEEpO2lmKFNCKEEpKXJldHVybiB0aGlzLmNyZWF0ZVN0eWxlQ2xvbmUoQSk7dmFyIGU9QS5jbG9uZU5vZGUoITEpO3JldHVybiAkQihlKSYmKCRCKEEpJiZBLmN1cnJlbnRTcmMmJkEuY3VycmVudFNyYyE9PUEuc3JjJiYoZS5zcmM9QS5jdXJyZW50U3JjLGUuc3Jjc2V0PSIiKSwibGF6eSI9PT1lLmxvYWRpbmcmJihlLmxvYWRpbmc9ImVhZ2VyIikpLFRCKGUpP3RoaXMuY3JlYXRlQ3VzdG9tRWxlbWVudENsb25lKGUpOmV9LGZuLnByb3RvdHlwZS5jcmVhdGVDdXN0b21FbGVtZW50Q2xvbmU9ZnVuY3Rpb24oQSl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaHRtbDJjYW52YXNjdXN0b21lbGVtZW50Iik7cmV0dXJuIEtuKEEuc3R5bGUsZSksZX0sZm4ucHJvdG90eXBlLmNyZWF0ZVN0eWxlQ2xvbmU9ZnVuY3Rpb24oQSl7dHJ5e3ZhciBlPUEuc2hlZXQ7aWYoZSYmZS5jc3NSdWxlcyl7dmFyIHQ9W10uc2xpY2UuY2FsbChlLmNzc1J1bGVzLDApLnJlZHVjZShmdW5jdGlvbihBLGUpe3JldHVybiBlJiYic3RyaW5nIj09dHlwZW9mIGUuY3NzVGV4dD9BK2UuY3NzVGV4dDpBfSwiIikscj1BLmNsb25lTm9kZSghMSk7cmV0dXJuIHIudGV4dENvbnRlbnQ9dCxyfX1jYXRjaChBKXtpZih0aGlzLmNvbnRleHQubG9nZ2VyLmVycm9yKCJVbmFibGUgdG8gYWNjZXNzIGNzc1J1bGVzIHByb3BlcnR5IixBKSwiU2VjdXJpdHlFcnJvciIhPT1BLm5hbWUpdGhyb3cgQX1yZXR1cm4gQS5jbG9uZU5vZGUoITEpfSxmbi5wcm90b3R5cGUuY3JlYXRlQ2FudmFzQ2xvbmU9ZnVuY3Rpb24oZSl7dmFyIEE7aWYodGhpcy5vcHRpb25zLmlubGluZUltYWdlcyYmZS5vd25lckRvY3VtZW50KXt2YXIgdD1lLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7dHJ5e3JldHVybiB0LnNyYz1lLnRvRGF0YVVSTCgpLHR9Y2F0Y2goQSl7dGhpcy5jb250ZXh0LmxvZ2dlci5pbmZvKCJVbmFibGUgdG8gaW5saW5lIGNhbnZhcyBjb250ZW50cywgY2FudmFzIGlzIHRhaW50ZWQiLGUpfX10PWUuY2xvbmVOb2RlKCExKTt0cnl7dC53aWR0aD1lLndpZHRoLHQuaGVpZ2h0PWUuaGVpZ2h0O3ZhciByLEIsbj1lLmdldENvbnRleHQoIjJkIikscz10LmdldENvbnRleHQoIjJkIik7cmV0dXJuIHMmJighdGhpcy5vcHRpb25zLmFsbG93VGFpbnQmJm4/cy5wdXRJbWFnZURhdGEobi5nZXRJbWFnZURhdGEoMCwwLGUud2lkdGgsZS5oZWlnaHQpLDAsMCk6KCEocj1udWxsIT09KEE9ZS5nZXRDb250ZXh0KCJ3ZWJnbDIiKSkmJnZvaWQgMCE9PUE/QTplLmdldENvbnRleHQoIndlYmdsIikpfHwhMT09PShudWxsPT0oQj1yLmdldENvbnRleHRBdHRyaWJ1dGVzKCkpP3ZvaWQgMDpCLnByZXNlcnZlRHJhd2luZ0J1ZmZlcikmJnRoaXMuY29udGV4dC5sb2dnZXIud2FybigiVW5hYmxlIHRvIGNsb25lIFdlYkdMIGNvbnRleHQgYXMgaXQgaGFzIHByZXNlcnZlRHJhd2luZ0J1ZmZlcj1mYWxzZSIsZSkscy5kcmF3SW1hZ2UoZSwwLDApKSksdH1jYXRjaChBKXt0aGlzLmNvbnRleHQubG9nZ2VyLmluZm8oIlVuYWJsZSB0byBjbG9uZSBjYW52YXMgYXMgaXQgaXMgdGFpbnRlZCIsZSl9cmV0dXJuIHR9LGZuLnByb3RvdHlwZS5jcmVhdGVWaWRlb0Nsb25lPWZ1bmN0aW9uKGUpe3ZhciBBPWUub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtBLndpZHRoPWUub2Zmc2V0V2lkdGgsQS5oZWlnaHQ9ZS5vZmZzZXRIZWlnaHQ7dmFyIHQ9QS5nZXRDb250ZXh0KCIyZCIpO3RyeXtyZXR1cm4gdCYmKHQuZHJhd0ltYWdlKGUsMCwwLEEud2lkdGgsQS5oZWlnaHQpLHRoaXMub3B0aW9ucy5hbGxvd1RhaW50fHx0LmdldEltYWdlRGF0YSgwLDAsQS53aWR0aCxBLmhlaWdodCkpLEF9Y2F0Y2goQSl7dGhpcy5jb250ZXh0LmxvZ2dlci5pbmZvKCJVbmFibGUgdG8gY2xvbmUgdmlkZW8gYXMgaXQgaXMgdGFpbnRlZCIsZSl9QT1lLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7cmV0dXJuIEEud2lkdGg9ZS5vZmZzZXRXaWR0aCxBLmhlaWdodD1lLm9mZnNldEhlaWdodCxBfSxmbi5wcm90b3R5cGUuYXBwZW5kQ2hpbGROb2RlPWZ1bmN0aW9uKEEsZSx0KXtYQihlKSYmKCJTQ1JJUFQiPT09ZS50YWdOYW1lfHxlLmhhc0F0dHJpYnV0ZShobil8fCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm9wdGlvbnMuaWdub3JlRWxlbWVudHMmJnRoaXMub3B0aW9ucy5pZ25vcmVFbGVtZW50cyhlKSl8fHRoaXMub3B0aW9ucy5jb3B5U3R5bGVzJiZYQihlKSYmU0IoZSl8fEEuYXBwZW5kQ2hpbGQodGhpcy5jbG9uZU5vZGUoZSx0KSl9LGZuLnByb3RvdHlwZS5jbG9uZUNoaWxkTm9kZXM9ZnVuY3Rpb24oQSxlLHQpe2Zvcih2YXIgcixCPXRoaXMsbj0oQS5zaGFkb3dSb290fHxBKS5maXJzdENoaWxkO247bj1uLm5leHRTaWJsaW5nKVhCKG4pJiZybihuKSYmImZ1bmN0aW9uIj09dHlwZW9mIG4uYXNzaWduZWROb2Rlcz8ocj1uLmFzc2lnbmVkTm9kZXMoKSkubGVuZ3RoJiZyLmZvckVhY2goZnVuY3Rpb24oQSl7cmV0dXJuIEIuYXBwZW5kQ2hpbGROb2RlKGUsQSx0KX0pOnRoaXMuYXBwZW5kQ2hpbGROb2RlKGUsbix0KX0sZm4ucHJvdG90eXBlLmNsb25lTm9kZT1mdW5jdGlvbihBLGUpe2lmKFBCKEEpKXJldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShBLmRhdGEpO2lmKCFBLm93bmVyRG9jdW1lbnQpcmV0dXJuIEEuY2xvbmVOb2RlKCExKTt2YXIgdD1BLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7aWYodCYmWEIoQSkmJihKQihBKXx8WUIoQSkpKXt2YXIgcj10aGlzLmNyZWF0ZUVsZW1lbnRDbG9uZShBKTtyLnN0eWxlLnRyYW5zaXRpb25Qcm9wZXJ0eT0ibm9uZSI7dmFyIEI9dC5nZXRDb21wdXRlZFN0eWxlKEEpLG49dC5nZXRDb21wdXRlZFN0eWxlKEEsIjpiZWZvcmUiKSxzPXQuZ2V0Q29tcHV0ZWRTdHlsZShBLCI6YWZ0ZXIiKTt0aGlzLnJlZmVyZW5jZUVsZW1lbnQ9PT1BJiZKQihyKSYmKHRoaXMuY2xvbmVkUmVmZXJlbmNlRWxlbWVudD1yKSxqQihyKSYmTW4ocik7dD10aGlzLmNvdW50ZXJzLnBhcnNlKG5ldyBVcih0aGlzLmNvbnRleHQsQikpLG49dGhpcy5yZXNvbHZlUHNldWRvQ29udGVudChBLHIsbixnbi5CRUZPUkUpO1RCKEEpJiYoZT0hMCksTUIoQSl8fHRoaXMuY2xvbmVDaGlsZE5vZGVzKEEscixlKSxuJiZyLmluc2VydEJlZm9yZShuLHIuZmlyc3RDaGlsZCk7cz10aGlzLnJlc29sdmVQc2V1ZG9Db250ZW50KEEscixzLGduLkFGVEVSKTtyZXR1cm4gcyYmci5hcHBlbmRDaGlsZChzKSx0aGlzLmNvdW50ZXJzLnBvcCh0KSwoQiYmKHRoaXMub3B0aW9ucy5jb3B5U3R5bGVzfHxZQihBKSkmJiFBbihBKXx8ZSkmJktuKEIsciksMD09PUEuc2Nyb2xsVG9wJiYwPT09QS5zY3JvbGxMZWZ0fHx0aGlzLnNjcm9sbGVkRWxlbWVudHMucHVzaChbcixBLnNjcm9sbExlZnQsQS5zY3JvbGxUb3BdKSwoZW4oQSl8fHRuKEEpKSYmKGVuKHIpfHx0bihyKSkmJihyLnZhbHVlPUEudmFsdWUpLHJ9cmV0dXJuIEEuY2xvbmVOb2RlKCExKX0sZm4ucHJvdG90eXBlLnJlc29sdmVQc2V1ZG9Db250ZW50PWZ1bmN0aW9uKG8sQSxlLHQpe3ZhciBpPXRoaXM7aWYoZSl7dmFyIHI9ZS5jb250ZW50LFE9QS5vd25lckRvY3VtZW50O2lmKFEmJnImJiJub25lIiE9PXImJiItbW96LWFsdC1jb250ZW50IiE9PXImJiJub25lIiE9PWUuZGlzcGxheSl7dGhpcy5jb3VudGVycy5wYXJzZShuZXcgVXIodGhpcy5jb250ZXh0LGUpKTt2YXIgYz1uZXcgd3IodGhpcy5jb250ZXh0LGUpLGE9US5jcmVhdGVFbGVtZW50KCJodG1sMmNhbnZhc3BzZXVkb2VsZW1lbnQiKTtLbihlLGEpLGMuY29udGVudC5mb3JFYWNoKGZ1bmN0aW9uKEEpe2lmKDA9PT1BLnR5cGUpYS5hcHBlbmRDaGlsZChRLmNyZWF0ZVRleHROb2RlKEEudmFsdWUpKTtlbHNlIGlmKDIyPT09QS50eXBlKXt2YXIgZT1RLmNyZWF0ZUVsZW1lbnQoImltZyIpO2Uuc3JjPUEudmFsdWUsZS5zdHlsZS5vcGFjaXR5PSIxIixhLmFwcGVuZENoaWxkKGUpfWVsc2UgaWYoMTg9PT1BLnR5cGUpe3ZhciB0LHIsQixuLHM7ImF0dHIiPT09QS5uYW1lPyhlPUEudmFsdWVzLmZpbHRlcihfQSkpLmxlbmd0aCYmYS5hcHBlbmRDaGlsZChRLmNyZWF0ZVRleHROb2RlKG8uZ2V0QXR0cmlidXRlKGVbMF0udmFsdWUpfHwiIikpOiJjb3VudGVyIj09PUEubmFtZT8oQj0ocj1BLnZhbHVlcy5maWx0ZXIoJEEpKVswXSxyPXJbMV0sQiYmX0EoQikmJih0PWkuY291bnRlcnMuZ2V0Q291bnRlclZhbHVlKEIudmFsdWUpLHM9ciYmX0Eocik/cHQucGFyc2UoaS5jb250ZXh0LHIudmFsdWUpOjMsYS5hcHBlbmRDaGlsZChRLmNyZWF0ZVRleHROb2RlKEZuKHQscywhMSkpKSkpOiJjb3VudGVycyI9PT1BLm5hbWUmJihCPSh0PUEudmFsdWVzLmZpbHRlcigkQSkpWzBdLHM9dFsxXSxyPXRbMl0sQiYmX0EoQikmJihCPWkuY291bnRlcnMuZ2V0Q291bnRlclZhbHVlcyhCLnZhbHVlKSxuPXImJl9BKHIpP3B0LnBhcnNlKGkuY29udGV4dCxyLnZhbHVlKTozLHM9cyYmMD09PXMudHlwZT9zLnZhbHVlOiIiLHM9Qi5tYXAoZnVuY3Rpb24oQSl7cmV0dXJuIEZuKEEsbiwhMSl9KS5qb2luKHMpLGEuYXBwZW5kQ2hpbGQoUS5jcmVhdGVUZXh0Tm9kZShzKSkpKX1lbHNlIGlmKDIwPT09QS50eXBlKXN3aXRjaChBLnZhbHVlKXtjYXNlIm9wZW4tcXVvdGUiOmEuYXBwZW5kQ2hpbGQoUS5jcmVhdGVUZXh0Tm9kZShYdChjLnF1b3RlcyxpLnF1b3RlRGVwdGgrKywhMCkpKTticmVhaztjYXNlImNsb3NlLXF1b3RlIjphLmFwcGVuZENoaWxkKFEuY3JlYXRlVGV4dE5vZGUoWHQoYy5xdW90ZXMsLS1pLnF1b3RlRGVwdGgsITEpKSk7YnJlYWs7ZGVmYXVsdDphLmFwcGVuZENoaWxkKFEuY3JlYXRlVGV4dE5vZGUoQS52YWx1ZSkpfX0pLGEuY2xhc3NOYW1lPURuKyIgIit2bjt0PXQ9PT1nbi5CRUZPUkU/IiAiK0RuOiIgIit2bjtyZXR1cm4gWUIoQSk/QS5jbGFzc05hbWUuYmFzZVZhbHVlKz10OkEuY2xhc3NOYW1lKz10LGF9fX0sZm4uZGVzdHJveT1mdW5jdGlvbihBKXtyZXR1cm4hIUEucGFyZW50Tm9kZSYmKEEucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChBKSwhMCl9LGZuKTtmdW5jdGlvbiBmbihBLGUsdCl7aWYodGhpcy5jb250ZXh0PUEsdGhpcy5vcHRpb25zPXQsdGhpcy5zY3JvbGxlZEVsZW1lbnRzPVtdLHRoaXMucmVmZXJlbmNlRWxlbWVudD1lLHRoaXMuY291bnRlcnM9bmV3IEJuLHRoaXMucXVvdGVEZXB0aD0wLCFlLm93bmVyRG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKCJDbG9uZWQgZWxlbWVudCBkb2VzIG5vdCBoYXZlIGFuIG93bmVyIGRvY3VtZW50Iik7dGhpcy5kb2N1bWVudEVsZW1lbnQ9dGhpcy5jbG9uZU5vZGUoZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwhMSl9KGhlPWduPWdufHx7fSlbaGUuQkVGT1JFPTBdPSJCRUZPUkUiLGhlW2hlLkFGVEVSPTFdPSJBRlRFUiI7ZnVuY3Rpb24gSG4oZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKEEpeyFlLmNvbXBsZXRlJiZlLnNyYz8oZS5vbmxvYWQ9QSxlLm9uZXJyb3I9QSk6QSgpfSl9dmFyIHBuPWZ1bmN0aW9uKEEsZSl7dmFyIHQ9QS5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtyZXR1cm4gdC5jbGFzc05hbWU9Imh0bWwyY2FudmFzLWNvbnRhaW5lciIsdC5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLHQuc3R5bGUucG9zaXRpb249ImZpeGVkIix0LnN0eWxlLmxlZnQ9Ii0xMDAwMHB4Iix0LnN0eWxlLnRvcD0iMHB4Iix0LnN0eWxlLmJvcmRlcj0iMCIsdC53aWR0aD1lLndpZHRoLnRvU3RyaW5nKCksdC5oZWlnaHQ9ZS5oZWlnaHQudG9TdHJpbmcoKSx0LnNjcm9sbGluZz0ibm8iLHQuc2V0QXR0cmlidXRlKGhuLCJ0cnVlIiksQS5ib2R5LmFwcGVuZENoaWxkKHQpLHR9LEVuPWZ1bmN0aW9uKEEpe3JldHVybiBQcm9taXNlLmFsbChbXS5zbGljZS5jYWxsKEEuaW1hZ2VzLDApLm1hcChIbikpfSxJbj1mdW5jdGlvbihCKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSxBKXt2YXIgdD1CLmNvbnRlbnRXaW5kb3c7aWYoIXQpcmV0dXJuIEEoIk5vIHdpbmRvdyBhc3NpZ25lZCBmb3IgaWZyYW1lIik7dmFyIHI9dC5kb2N1bWVudDt0Lm9ubG9hZD1CLm9ubG9hZD1mdW5jdGlvbigpe3Qub25sb2FkPUIub25sb2FkPW51bGw7dmFyIEE9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXswPHIuYm9keS5jaGlsZE5vZGVzLmxlbmd0aCYmImNvbXBsZXRlIj09PXIucmVhZHlTdGF0ZSYmKGNsZWFySW50ZXJ2YWwoQSksZShCKSl9LDUwKX19KX0seW49WyJhbGwiLCJkIiwiY29udGVudCJdLEtuPWZ1bmN0aW9uKEEsZSl7Zm9yKHZhciB0PUEubGVuZ3RoLTE7MDw9dDt0LS0pe3ZhciByPUEuaXRlbSh0KTstMT09PXluLmluZGV4T2YocikmJmUuc3R5bGUuc2V0UHJvcGVydHkocixBLmdldFByb3BlcnR5VmFsdWUocikpfXJldHVybiBlfSxtbj1mdW5jdGlvbihBKXt2YXIgZT0iIjtyZXR1cm4gQSYmKGUrPSI8IURPQ1RZUEUgIixBLm5hbWUmJihlKz1BLm5hbWUpLEEuaW50ZXJuYWxTdWJzZXQmJihlKz1BLmludGVybmFsU3Vic2V0KSxBLnB1YmxpY0lkJiYoZSs9JyInK0EucHVibGljSWQrJyInKSxBLnN5c3RlbUlkJiYoZSs9JyInK0Euc3lzdGVtSWQrJyInKSxlKz0iPiIpLGV9LExuPWZ1bmN0aW9uKEEsZSx0KXtBJiZBLmRlZmF1bHRWaWV3JiYoZSE9PUEuZGVmYXVsdFZpZXcucGFnZVhPZmZzZXR8fHQhPT1BLmRlZmF1bHRWaWV3LnBhZ2VZT2Zmc2V0KSYmQS5kZWZhdWx0Vmlldy5zY3JvbGxUbyhlLHQpfSxibj1mdW5jdGlvbihBKXt2YXIgZT1BWzBdLHQ9QVsxXSxBPUFbMl07ZS5zY3JvbGxMZWZ0PXQsZS5zY3JvbGxUb3A9QX0sRG49Il9fX2h0bWwyY2FudmFzX19fcHNldWRvZWxlbWVudF9iZWZvcmUiLHZuPSJfX19odG1sMmNhbnZhc19fX3BzZXVkb2VsZW1lbnRfYWZ0ZXIiLHhuPSd7XG4gICAgY29udGVudDogIiIgIWltcG9ydGFudDtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59JyxNbj1mdW5jdGlvbihBKXtTbihBLCIuIitEbisiOmJlZm9yZSIreG4rIlxuICAgICAgICAgLiIrdm4rIjphZnRlciIreG4pfSxTbj1mdW5jdGlvbihBLGUpe3ZhciB0PUEub3duZXJEb2N1bWVudDt0JiYoKHQ9dC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpKS50ZXh0Q29udGVudD1lLEEuYXBwZW5kQ2hpbGQodCkpfSxUbj0oR24uZ2V0T3JpZ2luPWZ1bmN0aW9uKEEpe3ZhciBlPUduLl9saW5rO3JldHVybiBlPyhlLmhyZWY9QSxlLmhyZWY9ZS5ocmVmLGUucHJvdG9jb2wrZS5ob3N0bmFtZStlLnBvcnQpOiJhYm91dDpibGFuayJ9LEduLmlzU2FtZU9yaWdpbj1mdW5jdGlvbihBKXtyZXR1cm4gR24uZ2V0T3JpZ2luKEEpPT09R24uX29yaWdpbn0sR24uc2V0Q29udGV4dD1mdW5jdGlvbihBKXtHbi5fbGluaz1BLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxHbi5fb3JpZ2luPUduLmdldE9yaWdpbihBLmxvY2F0aW9uLmhyZWYpfSxHbi5fb3JpZ2luPSJhYm91dDpibGFuayIsR24pO2Z1bmN0aW9uIEduKCl7fXZhciBPbj0oVm4ucHJvdG90eXBlLmFkZEltYWdlPWZ1bmN0aW9uKEEpe3ZhciBlPVByb21pc2UucmVzb2x2ZSgpO3JldHVybiB0aGlzLmhhcyhBKXx8KFluKEEpfHxQbihBKSkmJih0aGlzLl9jYWNoZVtBXT10aGlzLmxvYWRJbWFnZShBKSkuY2F0Y2goZnVuY3Rpb24oKXt9KSxlfSxWbi5wcm90b3R5cGUubWF0Y2g9ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMuX2NhY2hlW0FdfSxWbi5wcm90b3R5cGUubG9hZEltYWdlPWZ1bmN0aW9uKHMpe3JldHVybiBhKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLHIsdCxCLG49dGhpcztyZXR1cm4gSCh0aGlzLGZ1bmN0aW9uKEEpe3N3aXRjaChBLmxhYmVsKXtjYXNlIDA6cmV0dXJuKGU9VG4uaXNTYW1lT3JpZ2luKHMpLHI9IVhuKHMpJiYhMD09PXRoaXMuX29wdGlvbnMudXNlQ09SUyYmWHIuU1VQUE9SVF9DT1JTX0lNQUdFUyYmIWUsdD0hWG4ocykmJiFlJiYhWW4ocykmJiJzdHJpbmciPT10eXBlb2YgdGhpcy5fb3B0aW9ucy5wcm94eSYmWHIuU1VQUE9SVF9DT1JTX1hIUiYmIXIsZXx8ITEhPT10aGlzLl9vcHRpb25zLmFsbG93VGFpbnR8fFhuKHMpfHxZbihzKXx8dHx8cik/KEI9cyx0P1s0LHRoaXMucHJveHkoQildOlszLDJdKTpbMl07Y2FzZSAxOkI9QS5zZW50KCksQS5sYWJlbD0yO2Nhc2UgMjpyZXR1cm4gdGhpcy5jb250ZXh0LmxvZ2dlci5kZWJ1ZygiQWRkZWQgaW1hZ2UgIitzLnN1YnN0cmluZygwLDI1NikpLFs0LG5ldyBQcm9taXNlKGZ1bmN0aW9uKEEsZSl7dmFyIHQ9bmV3IEltYWdlO3Qub25sb2FkPWZ1bmN0aW9uKCl7cmV0dXJuIEEodCl9LHQub25lcnJvcj1lLChKbihCKXx8cikmJih0LmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiKSx0LnNyYz1CLCEwPT09dC5jb21wbGV0ZSYmc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBBKHQpfSw1MDApLDA8bi5fb3B0aW9ucy5pbWFnZVRpbWVvdXQmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gZSgiVGltZWQgb3V0ICgiK24uX29wdGlvbnMuaW1hZ2VUaW1lb3V0KyJtcykgbG9hZGluZyBpbWFnZSIpfSxuLl9vcHRpb25zLmltYWdlVGltZW91dCl9KV07Y2FzZSAzOnJldHVyblsyLEEuc2VudCgpXX19KX0pfSxWbi5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKEEpe3JldHVybiB2b2lkIDAhPT10aGlzLl9jYWNoZVtBXX0sVm4ucHJvdG90eXBlLmtleXM9ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKE9iamVjdC5rZXlzKHRoaXMuX2NhY2hlKSl9LFZuLnByb3RvdHlwZS5wcm94eT1mdW5jdGlvbihzKXt2YXIgbz10aGlzLGk9dGhpcy5fb3B0aW9ucy5wcm94eTtpZighaSl0aHJvdyBuZXcgRXJyb3IoIk5vIHByb3h5IGRlZmluZWQiKTt2YXIgUT1zLnN1YnN0cmluZygwLDI1Nik7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsdCl7dmFyIHI9WHIuU1VQUE9SVF9SRVNQT05TRV9UWVBFPyJibG9iIjoidGV4dCIsQj1uZXcgWE1MSHR0cFJlcXVlc3Q7Qi5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgQTsyMDA9PT1CLnN0YXR1cz8idGV4dCI9PXI/ZShCLnJlc3BvbnNlKTooKEE9bmV3IEZpbGVSZWFkZXIpLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7cmV0dXJuIGUoQS5yZXN1bHQpfSwhMSksQS5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZnVuY3Rpb24oQSl7cmV0dXJuIHQoQSl9LCExKSxBLnJlYWRBc0RhdGFVUkwoQi5yZXNwb25zZSkpOnQoIkZhaWxlZCB0byBwcm94eSByZXNvdXJjZSAiK1ErIiB3aXRoIHN0YXR1cyBjb2RlICIrQi5zdGF0dXMpfSxCLm9uZXJyb3I9dDt2YXIgQSxuPS0xPGkuaW5kZXhPZigiPyIpPyImIjoiPyI7Qi5vcGVuKCJHRVQiLGkrbisidXJsPSIrZW5jb2RlVVJJQ29tcG9uZW50KHMpKyImcmVzcG9uc2VUeXBlPSIrciksInRleHQiIT1yJiZCIGluc3RhbmNlb2YgWE1MSHR0cFJlcXVlc3QmJihCLnJlc3BvbnNlVHlwZT1yKSxvLl9vcHRpb25zLmltYWdlVGltZW91dCYmKEE9by5fb3B0aW9ucy5pbWFnZVRpbWVvdXQsQi50aW1lb3V0PUEsQi5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdCgiVGltZWQgb3V0ICgiK0ErIm1zKSBwcm94eWluZyAiK1EpfSksQi5zZW5kKCl9KX0sVm4pO2Z1bmN0aW9uIFZuKEEsZSl7dGhpcy5jb250ZXh0PUEsdGhpcy5fb3B0aW9ucz1lLHRoaXMuX2NhY2hlPXt9fXZhciBrbj0vXmRhdGE6aW1hZ2VcL3N2Z1wreG1sL2ksUm49L15kYXRhOmltYWdlXC8uKjtiYXNlNjQsL2ksTm49L15kYXRhOmltYWdlXC8uKi9pLFBuPWZ1bmN0aW9uKEEpe3JldHVybiBYci5TVVBQT1JUX1NWR19EUkFXSU5HfHwhV24oQSl9LFhuPWZ1bmN0aW9uKEEpe3JldHVybiBObi50ZXN0KEEpfSxKbj1mdW5jdGlvbihBKXtyZXR1cm4gUm4udGVzdChBKX0sWW49ZnVuY3Rpb24oQSl7cmV0dXJuImJsb2IiPT09QS5zdWJzdHIoMCw0KX0sV249ZnVuY3Rpb24oQSl7cmV0dXJuInN2ZyI9PT1BLnN1YnN0cigtMykudG9Mb3dlckNhc2UoKXx8a24udGVzdChBKX0sWm49KF9uLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oQSxlKXtyZXR1cm4gbmV3IF9uKHRoaXMueCtBLHRoaXMueStlKX0sX24pO2Z1bmN0aW9uIF9uKEEsZSl7dGhpcy50eXBlPTAsdGhpcy54PUEsdGhpcy55PWV9ZnVuY3Rpb24gcW4oQSxlLHQpe3JldHVybiBuZXcgWm4oQS54KyhlLngtQS54KSp0LEEueSsoZS55LUEueSkqdCl9dmFyIGpuPSh6bi5wcm90b3R5cGUuc3ViZGl2aWRlPWZ1bmN0aW9uKEEsZSl7dmFyIHQ9cW4odGhpcy5zdGFydCx0aGlzLnN0YXJ0Q29udHJvbCxBKSxyPXFuKHRoaXMuc3RhcnRDb250cm9sLHRoaXMuZW5kQ29udHJvbCxBKSxCPXFuKHRoaXMuZW5kQ29udHJvbCx0aGlzLmVuZCxBKSxuPXFuKHQscixBKSxyPXFuKHIsQixBKSxBPXFuKG4scixBKTtyZXR1cm4gZT9uZXcgem4odGhpcy5zdGFydCx0LG4sQSk6bmV3IHpuKEEscixCLHRoaXMuZW5kKX0sem4ucHJvdG90eXBlLmFkZD1mdW5jdGlvbihBLGUpe3JldHVybiBuZXcgem4odGhpcy5zdGFydC5hZGQoQSxlKSx0aGlzLnN0YXJ0Q29udHJvbC5hZGQoQSxlKSx0aGlzLmVuZENvbnRyb2wuYWRkKEEsZSksdGhpcy5lbmQuYWRkKEEsZSkpfSx6bi5wcm90b3R5cGUucmV2ZXJzZT1mdW5jdGlvbigpe3JldHVybiBuZXcgem4odGhpcy5lbmQsdGhpcy5lbmRDb250cm9sLHRoaXMuc3RhcnRDb250cm9sLHRoaXMuc3RhcnQpfSx6bik7ZnVuY3Rpb24gem4oQSxlLHQscil7dGhpcy50eXBlPTEsdGhpcy5zdGFydD1BLHRoaXMuc3RhcnRDb250cm9sPWUsdGhpcy5lbmRDb250cm9sPXQsdGhpcy5lbmQ9cn1mdW5jdGlvbiAkbihBKXtyZXR1cm4gMT09PUEudHlwZX12YXIgQXMsZXM9ZnVuY3Rpb24oQSl7dmFyIGU9QS5zdHlsZXMsdD1BLmJvdW5kcyxyPShDPUJlKGUuYm9yZGVyVG9wTGVmdFJhZGl1cyx0LndpZHRoLHQuaGVpZ2h0KSlbMF0sQj1DWzFdLG49KHU9QmUoZS5ib3JkZXJUb3BSaWdodFJhZGl1cyx0LndpZHRoLHQuaGVpZ2h0KSlbMF0scz11WzFdLG89KEY9QmUoZS5ib3JkZXJCb3R0b21SaWdodFJhZGl1cyx0LndpZHRoLHQuaGVpZ2h0KSlbMF0saT1GWzFdLFE9KGg9QmUoZS5ib3JkZXJCb3R0b21MZWZ0UmFkaXVzLHQud2lkdGgsdC5oZWlnaHQpKVswXSxjPWhbMV07KGQ9W10pLnB1c2goKHIrbikvdC53aWR0aCksZC5wdXNoKChRK28pL3Qud2lkdGgpLGQucHVzaCgoQitjKS90LmhlaWdodCksZC5wdXNoKChzK2kpL3QuaGVpZ2h0KSwxPChmPU1hdGgubWF4LmFwcGx5KE1hdGgsZCkpJiYoci89ZixCLz1mLG4vPWYscy89ZixvLz1mLGkvPWYsUS89ZixjLz1mKTt2YXIgYT10LndpZHRoLW4sZz10LmhlaWdodC1pLHc9dC53aWR0aC1vLFU9dC5oZWlnaHQtYyxsPWUuYm9yZGVyVG9wV2lkdGgsQz1lLmJvcmRlclJpZ2h0V2lkdGgsdT1lLmJvcmRlckJvdHRvbVdpZHRoLEY9ZS5ib3JkZXJMZWZ0V2lkdGgsaD1VZShlLnBhZGRpbmdUb3AsQS5ib3VuZHMud2lkdGgpLGQ9VWUoZS5wYWRkaW5nUmlnaHQsQS5ib3VuZHMud2lkdGgpLGY9VWUoZS5wYWRkaW5nQm90dG9tLEEuYm91bmRzLndpZHRoKSxBPVVlKGUucGFkZGluZ0xlZnQsQS5ib3VuZHMud2lkdGgpO3RoaXMudG9wTGVmdEJvcmRlckRvdWJsZU91dGVyQm94PTA8cnx8MDxCP3NzKHQubGVmdCtGLzMsdC50b3ArbC8zLHItRi8zLEItbC8zLEFzLlRPUF9MRUZUKTpuZXcgWm4odC5sZWZ0K0YvMyx0LnRvcCtsLzMpLHRoaXMudG9wUmlnaHRCb3JkZXJEb3VibGVPdXRlckJveD0wPHJ8fDA8Qj9zcyh0LmxlZnQrYSx0LnRvcCtsLzMsbi1DLzMscy1sLzMsQXMuVE9QX1JJR0hUKTpuZXcgWm4odC5sZWZ0K3Qud2lkdGgtQy8zLHQudG9wK2wvMyksdGhpcy5ib3R0b21SaWdodEJvcmRlckRvdWJsZU91dGVyQm94PTA8b3x8MDxpP3NzKHQubGVmdCt3LHQudG9wK2csby1DLzMsaS11LzMsQXMuQk9UVE9NX1JJR0hUKTpuZXcgWm4odC5sZWZ0K3Qud2lkdGgtQy8zLHQudG9wK3QuaGVpZ2h0LXUvMyksdGhpcy5ib3R0b21MZWZ0Qm9yZGVyRG91YmxlT3V0ZXJCb3g9MDxRfHwwPGM/c3ModC5sZWZ0K0YvMyx0LnRvcCtVLFEtRi8zLGMtdS8zLEFzLkJPVFRPTV9MRUZUKTpuZXcgWm4odC5sZWZ0K0YvMyx0LnRvcCt0LmhlaWdodC11LzMpLHRoaXMudG9wTGVmdEJvcmRlckRvdWJsZUlubmVyQm94PTA8cnx8MDxCP3NzKHQubGVmdCsyKkYvMyx0LnRvcCsyKmwvMyxyLTIqRi8zLEItMipsLzMsQXMuVE9QX0xFRlQpOm5ldyBabih0LmxlZnQrMipGLzMsdC50b3ArMipsLzMpLHRoaXMudG9wUmlnaHRCb3JkZXJEb3VibGVJbm5lckJveD0wPHJ8fDA8Qj9zcyh0LmxlZnQrYSx0LnRvcCsyKmwvMyxuLTIqQy8zLHMtMipsLzMsQXMuVE9QX1JJR0hUKTpuZXcgWm4odC5sZWZ0K3Qud2lkdGgtMipDLzMsdC50b3ArMipsLzMpLHRoaXMuYm90dG9tUmlnaHRCb3JkZXJEb3VibGVJbm5lckJveD0wPG98fDA8aT9zcyh0LmxlZnQrdyx0LnRvcCtnLG8tMipDLzMsaS0yKnUvMyxBcy5CT1RUT01fUklHSFQpOm5ldyBabih0LmxlZnQrdC53aWR0aC0yKkMvMyx0LnRvcCt0LmhlaWdodC0yKnUvMyksdGhpcy5ib3R0b21MZWZ0Qm9yZGVyRG91YmxlSW5uZXJCb3g9MDxRfHwwPGM/c3ModC5sZWZ0KzIqRi8zLHQudG9wK1UsUS0yKkYvMyxjLTIqdS8zLEFzLkJPVFRPTV9MRUZUKTpuZXcgWm4odC5sZWZ0KzIqRi8zLHQudG9wK3QuaGVpZ2h0LTIqdS8zKSx0aGlzLnRvcExlZnRCb3JkZXJTdHJva2U9MDxyfHwwPEI/c3ModC5sZWZ0K0YvMix0LnRvcCtsLzIsci1GLzIsQi1sLzIsQXMuVE9QX0xFRlQpOm5ldyBabih0LmxlZnQrRi8yLHQudG9wK2wvMiksdGhpcy50b3BSaWdodEJvcmRlclN0cm9rZT0wPHJ8fDA8Qj9zcyh0LmxlZnQrYSx0LnRvcCtsLzIsbi1DLzIscy1sLzIsQXMuVE9QX1JJR0hUKTpuZXcgWm4odC5sZWZ0K3Qud2lkdGgtQy8yLHQudG9wK2wvMiksdGhpcy5ib3R0b21SaWdodEJvcmRlclN0cm9rZT0wPG98fDA8aT9zcyh0LmxlZnQrdyx0LnRvcCtnLG8tQy8yLGktdS8yLEFzLkJPVFRPTV9SSUdIVCk6bmV3IFpuKHQubGVmdCt0LndpZHRoLUMvMix0LnRvcCt0LmhlaWdodC11LzIpLHRoaXMuYm90dG9tTGVmdEJvcmRlclN0cm9rZT0wPFF8fDA8Yz9zcyh0LmxlZnQrRi8yLHQudG9wK1UsUS1GLzIsYy11LzIsQXMuQk9UVE9NX0xFRlQpOm5ldyBabih0LmxlZnQrRi8yLHQudG9wK3QuaGVpZ2h0LXUvMiksdGhpcy50b3BMZWZ0Qm9yZGVyQm94PTA8cnx8MDxCP3NzKHQubGVmdCx0LnRvcCxyLEIsQXMuVE9QX0xFRlQpOm5ldyBabih0LmxlZnQsdC50b3ApLHRoaXMudG9wUmlnaHRCb3JkZXJCb3g9MDxufHwwPHM/c3ModC5sZWZ0K2EsdC50b3AsbixzLEFzLlRPUF9SSUdIVCk6bmV3IFpuKHQubGVmdCt0LndpZHRoLHQudG9wKSx0aGlzLmJvdHRvbVJpZ2h0Qm9yZGVyQm94PTA8b3x8MDxpP3NzKHQubGVmdCt3LHQudG9wK2csbyxpLEFzLkJPVFRPTV9SSUdIVCk6bmV3IFpuKHQubGVmdCt0LndpZHRoLHQudG9wK3QuaGVpZ2h0KSx0aGlzLmJvdHRvbUxlZnRCb3JkZXJCb3g9MDxRfHwwPGM/c3ModC5sZWZ0LHQudG9wK1UsUSxjLEFzLkJPVFRPTV9MRUZUKTpuZXcgWm4odC5sZWZ0LHQudG9wK3QuaGVpZ2h0KSx0aGlzLnRvcExlZnRQYWRkaW5nQm94PTA8cnx8MDxCP3NzKHQubGVmdCtGLHQudG9wK2wsTWF0aC5tYXgoMCxyLUYpLE1hdGgubWF4KDAsQi1sKSxBcy5UT1BfTEVGVCk6bmV3IFpuKHQubGVmdCtGLHQudG9wK2wpLHRoaXMudG9wUmlnaHRQYWRkaW5nQm94PTA8bnx8MDxzP3NzKHQubGVmdCtNYXRoLm1pbihhLHQud2lkdGgtQyksdC50b3ArbCxhPnQud2lkdGgrQz8wOk1hdGgubWF4KDAsbi1DKSxNYXRoLm1heCgwLHMtbCksQXMuVE9QX1JJR0hUKTpuZXcgWm4odC5sZWZ0K3Qud2lkdGgtQyx0LnRvcCtsKSx0aGlzLmJvdHRvbVJpZ2h0UGFkZGluZ0JveD0wPG98fDA8aT9zcyh0LmxlZnQrTWF0aC5taW4odyx0LndpZHRoLUYpLHQudG9wK01hdGgubWluKGcsdC5oZWlnaHQtdSksTWF0aC5tYXgoMCxvLUMpLE1hdGgubWF4KDAsaS11KSxBcy5CT1RUT01fUklHSFQpOm5ldyBabih0LmxlZnQrdC53aWR0aC1DLHQudG9wK3QuaGVpZ2h0LXUpLHRoaXMuYm90dG9tTGVmdFBhZGRpbmdCb3g9MDxRfHwwPGM/c3ModC5sZWZ0K0YsdC50b3ArTWF0aC5taW4oVSx0LmhlaWdodC11KSxNYXRoLm1heCgwLFEtRiksTWF0aC5tYXgoMCxjLXUpLEFzLkJPVFRPTV9MRUZUKTpuZXcgWm4odC5sZWZ0K0YsdC50b3ArdC5oZWlnaHQtdSksdGhpcy50b3BMZWZ0Q29udGVudEJveD0wPHJ8fDA8Qj9zcyh0LmxlZnQrRitBLHQudG9wK2wraCxNYXRoLm1heCgwLHItKEYrQSkpLE1hdGgubWF4KDAsQi0obCtoKSksQXMuVE9QX0xFRlQpOm5ldyBabih0LmxlZnQrRitBLHQudG9wK2wraCksdGhpcy50b3BSaWdodENvbnRlbnRCb3g9MDxufHwwPHM/c3ModC5sZWZ0K01hdGgubWluKGEsdC53aWR0aCtGK0EpLHQudG9wK2wraCxhPnQud2lkdGgrRitBPzA6bi1GK0Escy0obCtoKSxBcy5UT1BfUklHSFQpOm5ldyBabih0LmxlZnQrdC53aWR0aC0oQytkKSx0LnRvcCtsK2gpLHRoaXMuYm90dG9tUmlnaHRDb250ZW50Qm94PTA8b3x8MDxpP3NzKHQubGVmdCtNYXRoLm1pbih3LHQud2lkdGgtKEYrQSkpLHQudG9wK01hdGgubWluKGcsdC5oZWlnaHQrbCtoKSxNYXRoLm1heCgwLG8tKEMrZCkpLGktKHUrZiksQXMuQk9UVE9NX1JJR0hUKTpuZXcgWm4odC5sZWZ0K3Qud2lkdGgtKEMrZCksdC50b3ArdC5oZWlnaHQtKHUrZikpLHRoaXMuYm90dG9tTGVmdENvbnRlbnRCb3g9MDxRfHwwPGM/c3ModC5sZWZ0K0YrQSx0LnRvcCtVLE1hdGgubWF4KDAsUS0oRitBKSksYy0odStmKSxBcy5CT1RUT01fTEVGVCk6bmV3IFpuKHQubGVmdCtGK0EsdC50b3ArdC5oZWlnaHQtKHUrZikpfTsoaGU9QXM9QXN8fHt9KVtoZS5UT1BfTEVGVD0wXT0iVE9QX0xFRlQiLGhlW2hlLlRPUF9SSUdIVD0xXT0iVE9QX1JJR0hUIixoZVtoZS5CT1RUT01fUklHSFQ9Ml09IkJPVFRPTV9SSUdIVCIsaGVbaGUuQk9UVE9NX0xFRlQ9M109IkJPVFRPTV9MRUZUIjtmdW5jdGlvbiB0cyhBKXtyZXR1cm5bQS50b3BMZWZ0Qm9yZGVyQm94LEEudG9wUmlnaHRCb3JkZXJCb3gsQS5ib3R0b21SaWdodEJvcmRlckJveCxBLmJvdHRvbUxlZnRCb3JkZXJCb3hdfWZ1bmN0aW9uIHJzKEEpe3JldHVybltBLnRvcExlZnRQYWRkaW5nQm94LEEudG9wUmlnaHRQYWRkaW5nQm94LEEuYm90dG9tUmlnaHRQYWRkaW5nQm94LEEuYm90dG9tTGVmdFBhZGRpbmdCb3hdfWZ1bmN0aW9uIEJzKEEpe3JldHVybiAxPT09QS50eXBlfWZ1bmN0aW9uIG5zKEEsdCl7cmV0dXJuIEEubGVuZ3RoPT09dC5sZW5ndGgmJkEuc29tZShmdW5jdGlvbihBLGUpe3JldHVybiBBPT09dFtlXX0pfXZhciBzcz1mdW5jdGlvbihBLGUsdCxyLEIpe3ZhciBuPShNYXRoLnNxcnQoMiktMSkvMyo0LHM9dCpuLG89cipuLGk9QSt0LFE9ZStyO3N3aXRjaChCKXtjYXNlIEFzLlRPUF9MRUZUOnJldHVybiBuZXcgam4obmV3IFpuKEEsUSksbmV3IFpuKEEsUS1vKSxuZXcgWm4oaS1zLGUpLG5ldyBabihpLGUpKTtjYXNlIEFzLlRPUF9SSUdIVDpyZXR1cm4gbmV3IGpuKG5ldyBabihBLGUpLG5ldyBabihBK3MsZSksbmV3IFpuKGksUS1vKSxuZXcgWm4oaSxRKSk7Y2FzZSBBcy5CT1RUT01fUklHSFQ6cmV0dXJuIG5ldyBqbihuZXcgWm4oaSxlKSxuZXcgWm4oaSxlK28pLG5ldyBabihBK3MsUSksbmV3IFpuKEEsUSkpO2RlZmF1bHQ6QXMuQk9UVE9NX0xFRlQ7cmV0dXJuIG5ldyBqbihuZXcgWm4oaSxRKSxuZXcgWm4oaS1zLFEpLG5ldyBabihBLGUrbyksbmV3IFpuKEEsZSkpfX0sb3M9ZnVuY3Rpb24oQSxlLHQpe3RoaXMub2Zmc2V0WD1BLHRoaXMub2Zmc2V0WT1lLHRoaXMubWF0cml4PXQsdGhpcy50eXBlPTAsdGhpcy50YXJnZXQ9Nn0saXM9ZnVuY3Rpb24oQSxlKXt0aGlzLnBhdGg9QSx0aGlzLnRhcmdldD1lLHRoaXMudHlwZT0xfSxRcz1mdW5jdGlvbihBKXt0aGlzLm9wYWNpdHk9QSx0aGlzLnR5cGU9Mix0aGlzLnRhcmdldD02fSxjcz1mdW5jdGlvbihBKXt0aGlzLmVsZW1lbnQ9QSx0aGlzLmlubGluZUxldmVsPVtdLHRoaXMubm9uSW5saW5lTGV2ZWw9W10sdGhpcy5uZWdhdGl2ZVpJbmRleD1bXSx0aGlzLnplcm9PckF1dG9aSW5kZXhPclRyYW5zZm9ybWVkT3JPcGFjaXR5PVtdLHRoaXMucG9zaXRpdmVaSW5kZXg9W10sdGhpcy5ub25Qb3NpdGlvbmVkRmxvYXRzPVtdLHRoaXMubm9uUG9zaXRpb25lZElubGluZUxldmVsPVtdfSxhcz0oZ3MucHJvdG90eXBlLmdldEVmZmVjdHM9ZnVuY3Rpb24oZSl7Zm9yKHZhciBBPS0xPT09WzIsM10uaW5kZXhPZih0aGlzLmNvbnRhaW5lci5zdHlsZXMucG9zaXRpb24pLHQ9dGhpcy5wYXJlbnQscj10aGlzLmVmZmVjdHMuc2xpY2UoMCk7dDspe3ZhciBCLG4scz10LmVmZmVjdHMuZmlsdGVyKGZ1bmN0aW9uKEEpe3JldHVybiFCcyhBKX0pO0F8fDAhPT10LmNvbnRhaW5lci5zdHlsZXMucG9zaXRpb258fCF0LnBhcmVudD8oci51bnNoaWZ0LmFwcGx5KHIscyksQT0tMT09PVsyLDNdLmluZGV4T2YodC5jb250YWluZXIuc3R5bGVzLnBvc2l0aW9uKSwwIT09dC5jb250YWluZXIuc3R5bGVzLm92ZXJmbG93WCYmKEI9dHModC5jdXJ2ZXMpLG49cnModC5jdXJ2ZXMpLG5zKEIsbil8fHIudW5zaGlmdChuZXcgaXMobiw2KSkpKTpyLnVuc2hpZnQuYXBwbHkocixzKSx0PXQucGFyZW50fXJldHVybiByLmZpbHRlcihmdW5jdGlvbihBKXtyZXR1cm4gUHQoQS50YXJnZXQsZSl9KX0sZ3MpO2Z1bmN0aW9uIGdzKEEsZSl7dmFyIHQscjt0aGlzLmNvbnRhaW5lcj1BLHRoaXMucGFyZW50PWUsdGhpcy5lZmZlY3RzPVtdLHRoaXMuY3VydmVzPW5ldyBlcyh0aGlzLmNvbnRhaW5lciksdGhpcy5jb250YWluZXIuc3R5bGVzLm9wYWNpdHk8MSYmdGhpcy5lZmZlY3RzLnB1c2gobmV3IFFzKHRoaXMuY29udGFpbmVyLnN0eWxlcy5vcGFjaXR5KSksbnVsbCE9PXRoaXMuY29udGFpbmVyLnN0eWxlcy50cmFuc2Zvcm0mJihlPXRoaXMuY29udGFpbmVyLmJvdW5kcy5sZWZ0K3RoaXMuY29udGFpbmVyLnN0eWxlcy50cmFuc2Zvcm1PcmlnaW5bMF0ubnVtYmVyLHQ9dGhpcy5jb250YWluZXIuYm91bmRzLnRvcCt0aGlzLmNvbnRhaW5lci5zdHlsZXMudHJhbnNmb3JtT3JpZ2luWzFdLm51bWJlcixyPXRoaXMuY29udGFpbmVyLnN0eWxlcy50cmFuc2Zvcm0sdGhpcy5lZmZlY3RzLnB1c2gobmV3IG9zKGUsdCxyKSkpLDAhPT10aGlzLmNvbnRhaW5lci5zdHlsZXMub3ZlcmZsb3dYJiYodD10cyh0aGlzLmN1cnZlcykscj1ycyh0aGlzLmN1cnZlcyksbnModCxyKT90aGlzLmVmZmVjdHMucHVzaChuZXcgaXModCw2KSk6KHRoaXMuZWZmZWN0cy5wdXNoKG5ldyBpcyh0LDIpKSx0aGlzLmVmZmVjdHMucHVzaChuZXcgaXMociw0KSkpKX1mdW5jdGlvbiB3cyhBLGUpe3N3aXRjaChlKXtjYXNlIDA6cmV0dXJuIEhzKEEudG9wTGVmdEJvcmRlckJveCxBLnRvcExlZnRQYWRkaW5nQm94LEEudG9wUmlnaHRCb3JkZXJCb3gsQS50b3BSaWdodFBhZGRpbmdCb3gpO2Nhc2UgMTpyZXR1cm4gSHMoQS50b3BSaWdodEJvcmRlckJveCxBLnRvcFJpZ2h0UGFkZGluZ0JveCxBLmJvdHRvbVJpZ2h0Qm9yZGVyQm94LEEuYm90dG9tUmlnaHRQYWRkaW5nQm94KTtjYXNlIDI6cmV0dXJuIEhzKEEuYm90dG9tUmlnaHRCb3JkZXJCb3gsQS5ib3R0b21SaWdodFBhZGRpbmdCb3gsQS5ib3R0b21MZWZ0Qm9yZGVyQm94LEEuYm90dG9tTGVmdFBhZGRpbmdCb3gpO2RlZmF1bHQ6cmV0dXJuIEhzKEEuYm90dG9tTGVmdEJvcmRlckJveCxBLmJvdHRvbUxlZnRQYWRkaW5nQm94LEEudG9wTGVmdEJvcmRlckJveCxBLnRvcExlZnRQYWRkaW5nQm94KX19ZnVuY3Rpb24gVXMoQSl7dmFyIGU9QS5ib3VuZHMsQT1BLnN0eWxlcztyZXR1cm4gZS5hZGQoQS5ib3JkZXJMZWZ0V2lkdGgsQS5ib3JkZXJUb3BXaWR0aCwtKEEuYm9yZGVyUmlnaHRXaWR0aCtBLmJvcmRlckxlZnRXaWR0aCksLShBLmJvcmRlclRvcFdpZHRoK0EuYm9yZGVyQm90dG9tV2lkdGgpKX1mdW5jdGlvbiBscyhBKXt2YXIgZT1BLnN0eWxlcyx0PUEuYm91bmRzLHI9VWUoZS5wYWRkaW5nTGVmdCx0LndpZHRoKSxCPVVlKGUucGFkZGluZ1JpZ2h0LHQud2lkdGgpLG49VWUoZS5wYWRkaW5nVG9wLHQud2lkdGgpLEE9VWUoZS5wYWRkaW5nQm90dG9tLHQud2lkdGgpO3JldHVybiB0LmFkZChyK2UuYm9yZGVyTGVmdFdpZHRoLG4rZS5ib3JkZXJUb3BXaWR0aCwtKGUuYm9yZGVyUmlnaHRXaWR0aCtlLmJvcmRlckxlZnRXaWR0aCtyK0IpLC0oZS5ib3JkZXJUb3BXaWR0aCtlLmJvcmRlckJvdHRvbVdpZHRoK24rQSkpfWZ1bmN0aW9uIENzKEEsZSx0KXt2YXIgcj0oQj1FcyhBLnN0eWxlcy5iYWNrZ3JvdW5kT3JpZ2luLGUpLG49QSwwPT09Qj9uLmJvdW5kczooMj09PUI/bHM6VXMpKG4pKSxCPShzPUVzKEEuc3R5bGVzLmJhY2tncm91bmRDbGlwLGUpLG89QSwwPT09cz9vLmJvdW5kczooMj09PXM/bHM6VXMpKG8pKSxuPXBzKEVzKEEuc3R5bGVzLmJhY2tncm91bmRTaXplLGUpLHQscikscz1uWzBdLG89blsxXSx0PUJlKEVzKEEuc3R5bGVzLmJhY2tncm91bmRQb3NpdGlvbixlKSxyLndpZHRoLXMsci5oZWlnaHQtbyk7cmV0dXJuW0lzKEVzKEEuc3R5bGVzLmJhY2tncm91bmRSZXBlYXQsZSksdCxuLHIsQiksTWF0aC5yb3VuZChyLmxlZnQrdFswXSksTWF0aC5yb3VuZChyLnRvcCt0WzFdKSxzLG9dfWZ1bmN0aW9uIHVzKEEpe3JldHVybiBfQShBKSYmQS52YWx1ZT09PVZlLkFVVE99ZnVuY3Rpb24gRnMoQSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBBfXZhciBocz1mdW5jdGlvbihRLGMsYSxnKXtRLmNvbnRhaW5lci5lbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uKEEpe3ZhciBlPVB0KEEuZmxhZ3MsNCksdD1QdChBLmZsYWdzLDIpLHI9bmV3IGFzKEEsUSk7UHQoQS5zdHlsZXMuZGlzcGxheSwyMDQ4KSYmZy5wdXNoKHIpO3ZhciBCLG4scyxvLGk9UHQoQS5mbGFncyw4KT9bXTpnO2V8fHQ/KEI9ZXx8QS5zdHlsZXMuaXNQb3NpdGlvbmVkKCk/YTpjLHQ9bmV3IGNzKHIpLEEuc3R5bGVzLmlzUG9zaXRpb25lZCgpfHxBLnN0eWxlcy5vcGFjaXR5PDF8fEEuc3R5bGVzLmlzVHJhbnNmb3JtZWQoKT8obj1BLnN0eWxlcy56SW5kZXgub3JkZXIpPDA/KHM9MCxCLm5lZ2F0aXZlWkluZGV4LnNvbWUoZnVuY3Rpb24oQSxlKXtyZXR1cm4gbj5BLmVsZW1lbnQuY29udGFpbmVyLnN0eWxlcy56SW5kZXgub3JkZXI/KHM9ZSwhMSk6MDxzfSksQi5uZWdhdGl2ZVpJbmRleC5zcGxpY2UocywwLHQpKTowPG4/KG89MCxCLnBvc2l0aXZlWkluZGV4LnNvbWUoZnVuY3Rpb24oQSxlKXtyZXR1cm4gbj49QS5lbGVtZW50LmNvbnRhaW5lci5zdHlsZXMuekluZGV4Lm9yZGVyPyhvPWUrMSwhMSk6MDxvfSksQi5wb3NpdGl2ZVpJbmRleC5zcGxpY2UobywwLHQpKTpCLnplcm9PckF1dG9aSW5kZXhPclRyYW5zZm9ybWVkT3JPcGFjaXR5LnB1c2godCk6KEEuc3R5bGVzLmlzRmxvYXRpbmcoKT9CLm5vblBvc2l0aW9uZWRGbG9hdHM6Qi5ub25Qb3NpdGlvbmVkSW5saW5lTGV2ZWwpLnB1c2godCksaHMocix0LGU/dDphLGkpKTooKEEuc3R5bGVzLmlzSW5saW5lTGV2ZWwoKT9jLmlubGluZUxldmVsOmMubm9uSW5saW5lTGV2ZWwpLnB1c2gociksaHMocixjLGEsaSkpLFB0KEEuZmxhZ3MsOCkmJmRzKEEsaSl9KX0sZHM9ZnVuY3Rpb24oQSxlKXtmb3IodmFyIHQ9QSBpbnN0YW5jZW9mIFVCP0Euc3RhcnQ6MSxyPUEgaW5zdGFuY2VvZiBVQiYmQS5yZXZlcnNlZCxCPTA7QjxlLmxlbmd0aDtCKyspe3ZhciBuPWVbQl07bi5jb250YWluZXIgaW5zdGFuY2VvZiBhQiYmIm51bWJlciI9PXR5cGVvZiBuLmNvbnRhaW5lci52YWx1ZSYmMCE9PW4uY29udGFpbmVyLnZhbHVlJiYodD1uLmNvbnRhaW5lci52YWx1ZSksbi5saXN0VmFsdWU9Rm4odCxuLmNvbnRhaW5lci5zdHlsZXMubGlzdFN0eWxlVHlwZSwhMCksdCs9cj8tMToxfX0sZnM9ZnVuY3Rpb24oQSxlKXt2YXIgdD1bXTtyZXR1cm4gJG4oQSk/dC5wdXNoKEEuc3ViZGl2aWRlKC41LCExKSk6dC5wdXNoKEEpLCRuKGUpP3QucHVzaChlLnN1YmRpdmlkZSguNSwhMCkpOnQucHVzaChlKSx0fSxIcz1mdW5jdGlvbihBLGUsdCxyKXt2YXIgQj1bXTtyZXR1cm4gJG4oQSk/Qi5wdXNoKEEuc3ViZGl2aWRlKC41LCExKSk6Qi5wdXNoKEEpLCRuKHQpP0IucHVzaCh0LnN1YmRpdmlkZSguNSwhMCkpOkIucHVzaCh0KSwkbihyKT9CLnB1c2goci5zdWJkaXZpZGUoLjUsITApLnJldmVyc2UoKSk6Qi5wdXNoKHIpLCRuKGUpP0IucHVzaChlLnN1YmRpdmlkZSguNSwhMSkucmV2ZXJzZSgpKTpCLnB1c2goZSksQn0scHM9ZnVuY3Rpb24oQSxlLHQpe3ZhciByPWVbMF0sQj1lWzFdLG49ZVsyXSxzPUFbMF0sbz1BWzFdO2lmKCFzKXJldHVyblswLDBdO2lmKHRlKHMpJiZvJiZ0ZShvKSlyZXR1cm5bVWUocyx0LndpZHRoKSxVZShvLHQuaGVpZ2h0KV07dmFyIGk9RnMobik7aWYoX0EocykmJihzLnZhbHVlPT09VmUuQ09OVEFJTnx8cy52YWx1ZT09PVZlLkNPVkVSKSlyZXR1cm4gRnMobik/dC53aWR0aC90LmhlaWdodDxuIT0ocy52YWx1ZT09PVZlLkNPVkVSKT9bdC53aWR0aCx0LndpZHRoL25dOlt0LmhlaWdodCpuLHQuaGVpZ2h0XTpbdC53aWR0aCx0LmhlaWdodF07dmFyIFE9RnMociksZT1GcyhCKSxBPVF8fGU7aWYodXMocykmJighb3x8dXMobykpKXJldHVybiBRJiZlP1tyLEJdOml8fEE/QSYmaT9bUT9yOkIqbixlP0I6ci9uXTpbUT9yOnQud2lkdGgsZT9COnQuaGVpZ2h0XTpbdC53aWR0aCx0LmhlaWdodF07aWYoaSl7dmFyIGM9MCxhPTA7cmV0dXJuIHRlKHMpP2M9VWUocyx0LndpZHRoKTp0ZShvKSYmKGE9VWUobyx0LmhlaWdodCkpLHVzKHMpP2M9YSpuOm8mJiF1cyhvKXx8KGE9Yy9uKSxbYyxhXX1jPW51bGwsYT1udWxsO2lmKHRlKHMpP2M9VWUocyx0LndpZHRoKTpvJiZ0ZShvKSYmKGE9VWUobyx0LmhlaWdodCkpLG51bGwhPT0oYz1udWxsIT09KGE9bnVsbCE9PWMmJighb3x8dXMobykpP1EmJmU/Yy9yKkI6dC5oZWlnaHQ6YSkmJnVzKHMpP1EmJmU/YS9CKnI6dC53aWR0aDpjKSYmbnVsbCE9PWEpcmV0dXJuW2MsYV07dGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gY2FsY3VsYXRlIGJhY2tncm91bmQtc2l6ZSBmb3IgZWxlbWVudCIpfSxFcz1mdW5jdGlvbihBLGUpe2U9QVtlXTtyZXR1cm4gdm9pZCAwPT09ZT9BWzBdOmV9LElzPWZ1bmN0aW9uKEEsZSx0LHIsQil7dmFyIG49ZVswXSxzPWVbMV0sbz10WzBdLGk9dFsxXTtzd2l0Y2goQSl7Y2FzZSAyOnJldHVybltuZXcgWm4oTWF0aC5yb3VuZChyLmxlZnQpLE1hdGgucm91bmQoci50b3ArcykpLG5ldyBabihNYXRoLnJvdW5kKHIubGVmdCtyLndpZHRoKSxNYXRoLnJvdW5kKHIudG9wK3MpKSxuZXcgWm4oTWF0aC5yb3VuZChyLmxlZnQrci53aWR0aCksTWF0aC5yb3VuZChpK3IudG9wK3MpKSxuZXcgWm4oTWF0aC5yb3VuZChyLmxlZnQpLE1hdGgucm91bmQoaStyLnRvcCtzKSldO2Nhc2UgMzpyZXR1cm5bbmV3IFpuKE1hdGgucm91bmQoci5sZWZ0K24pLE1hdGgucm91bmQoci50b3ApKSxuZXcgWm4oTWF0aC5yb3VuZChyLmxlZnQrbitvKSxNYXRoLnJvdW5kKHIudG9wKSksbmV3IFpuKE1hdGgucm91bmQoci5sZWZ0K24rbyksTWF0aC5yb3VuZChyLmhlaWdodCtyLnRvcCkpLG5ldyBabihNYXRoLnJvdW5kKHIubGVmdCtuKSxNYXRoLnJvdW5kKHIuaGVpZ2h0K3IudG9wKSldO2Nhc2UgMTpyZXR1cm5bbmV3IFpuKE1hdGgucm91bmQoci5sZWZ0K24pLE1hdGgucm91bmQoci50b3ArcykpLG5ldyBabihNYXRoLnJvdW5kKHIubGVmdCtuK28pLE1hdGgucm91bmQoci50b3ArcykpLG5ldyBabihNYXRoLnJvdW5kKHIubGVmdCtuK28pLE1hdGgucm91bmQoci50b3ArcytpKSksbmV3IFpuKE1hdGgucm91bmQoci5sZWZ0K24pLE1hdGgucm91bmQoci50b3ArcytpKSldO2RlZmF1bHQ6cmV0dXJuW25ldyBabihNYXRoLnJvdW5kKEIubGVmdCksTWF0aC5yb3VuZChCLnRvcCkpLG5ldyBabihNYXRoLnJvdW5kKEIubGVmdCtCLndpZHRoKSxNYXRoLnJvdW5kKEIudG9wKSksbmV3IFpuKE1hdGgucm91bmQoQi5sZWZ0K0Iud2lkdGgpLE1hdGgucm91bmQoQi5oZWlnaHQrQi50b3ApKSxuZXcgWm4oTWF0aC5yb3VuZChCLmxlZnQpLE1hdGgucm91bmQoQi5oZWlnaHQrQi50b3ApKV19fSx5cz0iSGlkZGVuIFRleHQiLEtzPShtcy5wcm90b3R5cGUucGFyc2VNZXRyaWNzPWZ1bmN0aW9uKEEsZSl7dmFyIHQ9dGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikscj10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSxCPXRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSxuPXRoaXMuX2RvY3VtZW50LmJvZHk7dC5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLHQuc3R5bGUuZm9udEZhbWlseT1BLHQuc3R5bGUuZm9udFNpemU9ZSx0LnN0eWxlLm1hcmdpbj0iMCIsdC5zdHlsZS5wYWRkaW5nPSIwIix0LnN0eWxlLndoaXRlU3BhY2U9Im5vd3JhcCIsbi5hcHBlbmRDaGlsZCh0KSxyLnNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFJQUFBQUFBQVAvLy95SDVCQUVBQUFBQUxBQUFBQUFCQUFFQUFBSUJSQUE3IixyLndpZHRoPTEsci5oZWlnaHQ9MSxyLnN0eWxlLm1hcmdpbj0iMCIsci5zdHlsZS5wYWRkaW5nPSIwIixyLnN0eWxlLnZlcnRpY2FsQWxpZ249ImJhc2VsaW5lIixCLnN0eWxlLmZvbnRGYW1pbHk9QSxCLnN0eWxlLmZvbnRTaXplPWUsQi5zdHlsZS5tYXJnaW49IjAiLEIuc3R5bGUucGFkZGluZz0iMCIsQi5hcHBlbmRDaGlsZCh0aGlzLl9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh5cykpLHQuYXBwZW5kQ2hpbGQoQiksdC5hcHBlbmRDaGlsZChyKTtlPXIub2Zmc2V0VG9wLUIub2Zmc2V0VG9wKzI7dC5yZW1vdmVDaGlsZChCKSx0LmFwcGVuZENoaWxkKHRoaXMuX2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKHlzKSksdC5zdHlsZS5saW5lSGVpZ2h0PSJub3JtYWwiLHIuc3R5bGUudmVydGljYWxBbGlnbj0ic3VwZXIiO3I9ci5vZmZzZXRUb3AtdC5vZmZzZXRUb3ArMjtyZXR1cm4gbi5yZW1vdmVDaGlsZCh0KSx7YmFzZWxpbmU6ZSxtaWRkbGU6cn19LG1zLnByb3RvdHlwZS5nZXRNZXRyaWNzPWZ1bmN0aW9uKEEsZSl7dmFyIHQ9QSsiICIrZTtyZXR1cm4gdm9pZCAwPT09dGhpcy5fZGF0YVt0XSYmKHRoaXMuX2RhdGFbdF09dGhpcy5wYXJzZU1ldHJpY3MoQSxlKSksdGhpcy5fZGF0YVt0XX0sbXMpO2Z1bmN0aW9uIG1zKEEpe3RoaXMuX2RhdGE9e30sdGhpcy5fZG9jdW1lbnQ9QX12YXIgTHMsaGU9ZnVuY3Rpb24oQSxlKXt0aGlzLmNvbnRleHQ9QSx0aGlzLm9wdGlvbnM9ZX0sYnM9KEEoRHMsTHM9aGUpLERzLnByb3RvdHlwZS5hcHBseUVmZmVjdHM9ZnVuY3Rpb24oQSl7Zm9yKHZhciBlPXRoaXM7dGhpcy5fYWN0aXZlRWZmZWN0cy5sZW5ndGg7KXRoaXMucG9wRWZmZWN0KCk7QS5mb3JFYWNoKGZ1bmN0aW9uKEEpe3JldHVybiBlLmFwcGx5RWZmZWN0KEEpfSl9LERzLnByb3RvdHlwZS5hcHBseUVmZmVjdD1mdW5jdGlvbihBKXt0aGlzLmN0eC5zYXZlKCksMj09PUEudHlwZSYmKHRoaXMuY3R4Lmdsb2JhbEFscGhhPUEub3BhY2l0eSksMD09PUEudHlwZSYmKHRoaXMuY3R4LnRyYW5zbGF0ZShBLm9mZnNldFgsQS5vZmZzZXRZKSx0aGlzLmN0eC50cmFuc2Zvcm0oQS5tYXRyaXhbMF0sQS5tYXRyaXhbMV0sQS5tYXRyaXhbMl0sQS5tYXRyaXhbM10sQS5tYXRyaXhbNF0sQS5tYXRyaXhbNV0pLHRoaXMuY3R4LnRyYW5zbGF0ZSgtQS5vZmZzZXRYLC1BLm9mZnNldFkpKSxCcyhBKSYmKHRoaXMucGF0aChBLnBhdGgpLHRoaXMuY3R4LmNsaXAoKSksdGhpcy5fYWN0aXZlRWZmZWN0cy5wdXNoKEEpfSxEcy5wcm90b3R5cGUucG9wRWZmZWN0PWZ1bmN0aW9uKCl7dGhpcy5fYWN0aXZlRWZmZWN0cy5wb3AoKSx0aGlzLmN0eC5yZXN0b3JlKCl9LERzLnByb3RvdHlwZS5yZW5kZXJTdGFjaz1mdW5jdGlvbihlKXtyZXR1cm4gYSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gSCh0aGlzLGZ1bmN0aW9uKEEpe3N3aXRjaChBLmxhYmVsKXtjYXNlIDA6cmV0dXJuIGUuZWxlbWVudC5jb250YWluZXIuc3R5bGVzLmlzVmlzaWJsZSgpP1s0LHRoaXMucmVuZGVyU3RhY2tDb250ZW50KGUpXTpbMywyXTtjYXNlIDE6QS5zZW50KCksQS5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bMl19fSl9KX0sRHMucHJvdG90eXBlLnJlbmRlck5vZGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGEodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIEgodGhpcyxmdW5jdGlvbihBKXtzd2l0Y2goQS5sYWJlbCl7Y2FzZSAwOnJldHVybiBQdChlLmNvbnRhaW5lci5mbGFncywxNiksZS5jb250YWluZXIuc3R5bGVzLmlzVmlzaWJsZSgpP1s0LHRoaXMucmVuZGVyTm9kZUJhY2tncm91bmRBbmRCb3JkZXJzKGUpXTpbMywzXTtjYXNlIDE6cmV0dXJuIEEuc2VudCgpLFs0LHRoaXMucmVuZGVyTm9kZUNvbnRlbnQoZSldO2Nhc2UgMjpBLnNlbnQoKSxBLmxhYmVsPTM7Y2FzZSAzOnJldHVyblsyXX19KX0pfSxEcy5wcm90b3R5cGUucmVuZGVyVGV4dFdpdGhMZXR0ZXJTcGFjaW5nPWZ1bmN0aW9uKHQsQSxyKXt2YXIgQj10aGlzOzA9PT1BP3RoaXMuY3R4LmZpbGxUZXh0KHQudGV4dCx0LmJvdW5kcy5sZWZ0LHQuYm91bmRzLnRvcCtyKTpacih0LnRleHQpLnJlZHVjZShmdW5jdGlvbihBLGUpe3JldHVybiBCLmN0eC5maWxsVGV4dChlLEEsdC5ib3VuZHMudG9wK3IpLEErQi5jdHgubWVhc3VyZVRleHQoZSkud2lkdGh9LHQuYm91bmRzLmxlZnQpfSxEcy5wcm90b3R5cGUuY3JlYXRlRm9udFN0eWxlPWZ1bmN0aW9uKEEpe3ZhciBlPUEuZm9udFZhcmlhbnQuZmlsdGVyKGZ1bmN0aW9uKEEpe3JldHVybiJub3JtYWwiPT09QXx8InNtYWxsLWNhcHMiPT09QX0pLmpvaW4oIiIpLHQ9R3MoQS5mb250RmFtaWx5KS5qb2luKCIsICIpLHI9V0EoQS5mb250U2l6ZSk/IiIrQS5mb250U2l6ZS5udW1iZXIrQS5mb250U2l6ZS51bml0OkEuZm9udFNpemUubnVtYmVyKyJweCI7cmV0dXJuW1tBLmZvbnRTdHlsZSxlLEEuZm9udFdlaWdodCxyLHRdLmpvaW4oIiAiKSx0LHJdfSxEcy5wcm90b3R5cGUucmVuZGVyVGV4dE5vZGU9ZnVuY3Rpb24oaSxRKXtyZXR1cm4gYSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSx0LHIsQixuLHMsbz10aGlzO3JldHVybiBIKHRoaXMsZnVuY3Rpb24oQSl7cmV0dXJuIHI9dGhpcy5jcmVhdGVGb250U3R5bGUoUSksZT1yWzBdLHQ9clsxXSxyPXJbMl0sdGhpcy5jdHguZm9udD1lLHRoaXMuY3R4LmRpcmVjdGlvbj0xPT09US5kaXJlY3Rpb24/InJ0bCI6Imx0ciIsdGhpcy5jdHgudGV4dEFsaWduPSJsZWZ0Iix0aGlzLmN0eC50ZXh0QmFzZWxpbmU9ImFscGhhYmV0aWMiLHI9dGhpcy5mb250TWV0cmljcy5nZXRNZXRyaWNzKHQsciksQj1yLmJhc2VsaW5lLG49ci5taWRkbGUscz1RLnBhaW50T3JkZXIsaS50ZXh0Qm91bmRzLmZvckVhY2goZnVuY3Rpb24odCl7cy5mb3JFYWNoKGZ1bmN0aW9uKEEpe3N3aXRjaChBKXtjYXNlIDA6by5jdHguZmlsbFN0eWxlPWllKFEuY29sb3IpLG8ucmVuZGVyVGV4dFdpdGhMZXR0ZXJTcGFjaW5nKHQsUS5sZXR0ZXJTcGFjaW5nLEIpO3ZhciBlPVEudGV4dFNoYWRvdztlLmxlbmd0aCYmdC50ZXh0LnRyaW0oKS5sZW5ndGgmJihlLnNsaWNlKDApLnJldmVyc2UoKS5mb3JFYWNoKGZ1bmN0aW9uKEEpe28uY3R4LnNoYWRvd0NvbG9yPWllKEEuY29sb3IpLG8uY3R4LnNoYWRvd09mZnNldFg9QS5vZmZzZXRYLm51bWJlcipvLm9wdGlvbnMuc2NhbGUsby5jdHguc2hhZG93T2Zmc2V0WT1BLm9mZnNldFkubnVtYmVyKm8ub3B0aW9ucy5zY2FsZSxvLmN0eC5zaGFkb3dCbHVyPUEuYmx1ci5udW1iZXIsby5yZW5kZXJUZXh0V2l0aExldHRlclNwYWNpbmcodCxRLmxldHRlclNwYWNpbmcsQil9KSxvLmN0eC5zaGFkb3dDb2xvcj0iIixvLmN0eC5zaGFkb3dPZmZzZXRYPTAsby5jdHguc2hhZG93T2Zmc2V0WT0wLG8uY3R4LnNoYWRvd0JsdXI9MCksUS50ZXh0RGVjb3JhdGlvbkxpbmUubGVuZ3RoJiYoby5jdHguZmlsbFN0eWxlPWllKFEudGV4dERlY29yYXRpb25Db2xvcnx8US5jb2xvciksUS50ZXh0RGVjb3JhdGlvbkxpbmUuZm9yRWFjaChmdW5jdGlvbihBKXtzd2l0Y2goQSl7Y2FzZSAxOm8uY3R4LmZpbGxSZWN0KHQuYm91bmRzLmxlZnQsTWF0aC5yb3VuZCh0LmJvdW5kcy50b3ArQiksdC5ib3VuZHMud2lkdGgsMSk7YnJlYWs7Y2FzZSAyOm8uY3R4LmZpbGxSZWN0KHQuYm91bmRzLmxlZnQsTWF0aC5yb3VuZCh0LmJvdW5kcy50b3ApLHQuYm91bmRzLndpZHRoLDEpO2JyZWFrO2Nhc2UgMzpvLmN0eC5maWxsUmVjdCh0LmJvdW5kcy5sZWZ0LE1hdGguY2VpbCh0LmJvdW5kcy50b3ArbiksdC5ib3VuZHMud2lkdGgsMSl9fSkpO2JyZWFrO2Nhc2UgMTpRLndlYmtpdFRleHRTdHJva2VXaWR0aCYmdC50ZXh0LnRyaW0oKS5sZW5ndGgmJihvLmN0eC5zdHJva2VTdHlsZT1pZShRLndlYmtpdFRleHRTdHJva2VDb2xvciksby5jdHgubGluZVdpZHRoPVEud2Via2l0VGV4dFN0cm9rZVdpZHRoLG8uY3R4LmxpbmVKb2luPXdpbmRvdy5jaHJvbWU/Im1pdGVyIjoicm91bmQiLG8uY3R4LnN0cm9rZVRleHQodC50ZXh0LHQuYm91bmRzLmxlZnQsdC5ib3VuZHMudG9wK0IpKSxvLmN0eC5zdHJva2VTdHlsZT0iIixvLmN0eC5saW5lV2lkdGg9MCxvLmN0eC5saW5lSm9pbj0ibWl0ZXIifX0pfSksWzJdfSl9KX0sRHMucHJvdG90eXBlLnJlbmRlclJlcGxhY2VkRWxlbWVudD1mdW5jdGlvbihBLGUsdCl7dmFyIHI7dCYmMDxBLmludHJpbnNpY1dpZHRoJiYwPEEuaW50cmluc2ljSGVpZ2h0JiYocj1scyhBKSxlPXJzKGUpLHRoaXMucGF0aChlKSx0aGlzLmN0eC5zYXZlKCksdGhpcy5jdHguY2xpcCgpLHRoaXMuY3R4LmRyYXdJbWFnZSh0LDAsMCxBLmludHJpbnNpY1dpZHRoLEEuaW50cmluc2ljSGVpZ2h0LHIubGVmdCxyLnRvcCxyLndpZHRoLHIuaGVpZ2h0KSx0aGlzLmN0eC5yZXN0b3JlKCkpfSxEcy5wcm90b3R5cGUucmVuZGVyTm9kZUNvbnRlbnQ9ZnVuY3Rpb24odyl7cmV0dXJuIGEodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsdCxyLEIsbixzLG8saSxRLGMsYSxnO3JldHVybiBIKHRoaXMsZnVuY3Rpb24oQSl7c3dpdGNoKEEubGFiZWwpe2Nhc2UgMDp0aGlzLmFwcGx5RWZmZWN0cyh3LmdldEVmZmVjdHMoNCkpLGU9dy5jb250YWluZXIsdD13LmN1cnZlcyxyPWUuc3R5bGVzLEI9MCxuPWUudGV4dE5vZGVzLEEubGFiZWw9MTtjYXNlIDE6cmV0dXJuIEI8bi5sZW5ndGg/KHM9bltCXSxbNCx0aGlzLnJlbmRlclRleHROb2RlKHMscildKTpbMyw0XTtjYXNlIDI6QS5zZW50KCksQS5sYWJlbD0zO2Nhc2UgMzpyZXR1cm4gQisrLFszLDFdO2Nhc2UgNDppZighKGUgaW5zdGFuY2VvZiB0QikpcmV0dXJuWzMsOF07QS5sYWJlbD01O2Nhc2UgNTpyZXR1cm4gQS50cnlzLnB1c2goWzUsNywsOF0pLFs0LHRoaXMuY29udGV4dC5jYWNoZS5tYXRjaChlLnNyYyldO2Nhc2UgNjpyZXR1cm4gUT1BLnNlbnQoKSx0aGlzLnJlbmRlclJlcGxhY2VkRWxlbWVudChlLHQsUSksWzMsOF07Y2FzZSA3OnJldHVybiBBLnNlbnQoKSx0aGlzLmNvbnRleHQubG9nZ2VyLmVycm9yKCJFcnJvciBsb2FkaW5nIGltYWdlICIrZS5zcmMpLFszLDhdO2Nhc2UgODppZihlIGluc3RhbmNlb2YgbkImJnRoaXMucmVuZGVyUmVwbGFjZWRFbGVtZW50KGUsdCxlLmNhbnZhcyksIShlIGluc3RhbmNlb2YgaUIpKXJldHVyblszLDEyXTtBLmxhYmVsPTk7Y2FzZSA5OnJldHVybiBBLnRyeXMucHVzaChbOSwxMSwsMTJdKSxbNCx0aGlzLmNvbnRleHQuY2FjaGUubWF0Y2goZS5zdmcpXTtjYXNlIDEwOnJldHVybiBRPUEuc2VudCgpLHRoaXMucmVuZGVyUmVwbGFjZWRFbGVtZW50KGUsdCxRKSxbMywxMl07Y2FzZSAxMTpyZXR1cm4gQS5zZW50KCksdGhpcy5jb250ZXh0LmxvZ2dlci5lcnJvcigiRXJyb3IgbG9hZGluZyBzdmcgIitlLnN2Zy5zdWJzdHJpbmcoMCwyNTUpKSxbMywxMl07Y2FzZSAxMjpyZXR1cm4gZSBpbnN0YW5jZW9mIHZCJiZlLnRyZWU/WzQsbmV3IERzKHRoaXMuY29udGV4dCx7c2NhbGU6dGhpcy5vcHRpb25zLnNjYWxlLGJhY2tncm91bmRDb2xvcjplLmJhY2tncm91bmRDb2xvcix4OjAseTowLHdpZHRoOmUud2lkdGgsaGVpZ2h0OmUuaGVpZ2h0fSkucmVuZGVyKGUudHJlZSldOlszLDE0XTtjYXNlIDEzOnM9QS5zZW50KCksZS53aWR0aCYmZS5oZWlnaHQmJnRoaXMuY3R4LmRyYXdJbWFnZShzLDAsMCxlLndpZHRoLGUuaGVpZ2h0LGUuYm91bmRzLmxlZnQsZS5ib3VuZHMudG9wLGUuYm91bmRzLndpZHRoLGUuYm91bmRzLmhlaWdodCksQS5sYWJlbD0xNDtjYXNlIDE0OmlmKGUgaW5zdGFuY2VvZiBwQiYmKGk9TWF0aC5taW4oZS5ib3VuZHMud2lkdGgsZS5ib3VuZHMuaGVpZ2h0KSxlLnR5cGU9PT1oQj9lLmNoZWNrZWQmJih0aGlzLmN0eC5zYXZlKCksdGhpcy5wYXRoKFtuZXcgWm4oZS5ib3VuZHMubGVmdCsuMzkzNjMqaSxlLmJvdW5kcy50b3ArLjc5KmkpLG5ldyBabihlLmJvdW5kcy5sZWZ0Ky4xNippLGUuYm91bmRzLnRvcCsuNTU0OSppKSxuZXcgWm4oZS5ib3VuZHMubGVmdCsuMjczNDcqaSxlLmJvdW5kcy50b3ArLjQ0MDcxKmkpLG5ldyBabihlLmJvdW5kcy5sZWZ0Ky4zOTY5NCppLGUuYm91bmRzLnRvcCsuNTY0OSppKSxuZXcgWm4oZS5ib3VuZHMubGVmdCsuNzI5ODMqaSxlLmJvdW5kcy50b3ArLjIzKmkpLG5ldyBabihlLmJvdW5kcy5sZWZ0Ky44NCppLGUuYm91bmRzLnRvcCsuMzQwODUqaSksbmV3IFpuKGUuYm91bmRzLmxlZnQrLjM5MzYzKmksZS5ib3VuZHMudG9wKy43OSppKV0pLHRoaXMuY3R4LmZpbGxTdHlsZT1pZShIQiksdGhpcy5jdHguZmlsbCgpLHRoaXMuY3R4LnJlc3RvcmUoKSk6ZS50eXBlPT09ZEImJmUuY2hlY2tlZCYmKHRoaXMuY3R4LnNhdmUoKSx0aGlzLmN0eC5iZWdpblBhdGgoKSx0aGlzLmN0eC5hcmMoZS5ib3VuZHMubGVmdCtpLzIsZS5ib3VuZHMudG9wK2kvMixpLzQsMCwyKk1hdGguUEksITApLHRoaXMuY3R4LmZpbGxTdHlsZT1pZShIQiksdGhpcy5jdHguZmlsbCgpLHRoaXMuY3R4LnJlc3RvcmUoKSkpLHhzKGUpJiZlLnZhbHVlLmxlbmd0aCl7c3dpdGNoKGM9dGhpcy5jcmVhdGVGb250U3R5bGUociksYT1jWzBdLGk9Y1sxXSxjPXRoaXMuZm9udE1ldHJpY3MuZ2V0TWV0cmljcyhhLGkpLmJhc2VsaW5lLHRoaXMuY3R4LmZvbnQ9YSx0aGlzLmN0eC5maWxsU3R5bGU9aWUoci5jb2xvciksdGhpcy5jdHgudGV4dEJhc2VsaW5lPSJhbHBoYWJldGljIix0aGlzLmN0eC50ZXh0QWxpZ249U3MoZS5zdHlsZXMudGV4dEFsaWduKSxnPWxzKGUpLG89MCxlLnN0eWxlcy50ZXh0QWxpZ24pe2Nhc2UgMTpvKz1nLndpZHRoLzI7YnJlYWs7Y2FzZSAyOm8rPWcud2lkdGh9aT1nLmFkZChvLDAsMCwtZy5oZWlnaHQvMisxKSx0aGlzLmN0eC5zYXZlKCksdGhpcy5wYXRoKFtuZXcgWm4oZy5sZWZ0LGcudG9wKSxuZXcgWm4oZy5sZWZ0K2cud2lkdGgsZy50b3ApLG5ldyBabihnLmxlZnQrZy53aWR0aCxnLnRvcCtnLmhlaWdodCksbmV3IFpuKGcubGVmdCxnLnRvcCtnLmhlaWdodCldKSx0aGlzLmN0eC5jbGlwKCksdGhpcy5yZW5kZXJUZXh0V2l0aExldHRlclNwYWNpbmcobmV3IEpyKGUudmFsdWUsaSksci5sZXR0ZXJTcGFjaW5nLGMpLHRoaXMuY3R4LnJlc3RvcmUoKSx0aGlzLmN0eC50ZXh0QmFzZWxpbmU9ImFscGhhYmV0aWMiLHRoaXMuY3R4LnRleHRBbGlnbj0ibGVmdCJ9aWYoIVB0KGUuc3R5bGVzLmRpc3BsYXksMjA0OCkpcmV0dXJuWzMsMjBdO2lmKG51bGw9PT1lLnN0eWxlcy5saXN0U3R5bGVJbWFnZSlyZXR1cm5bMywxOV07aWYoMCE9PShjPWUuc3R5bGVzLmxpc3RTdHlsZUltYWdlKS50eXBlKXJldHVyblszLDE4XTtRPXZvaWQgMCxjPWMudXJsLEEubGFiZWw9MTU7Y2FzZSAxNTpyZXR1cm4gQS50cnlzLnB1c2goWzE1LDE3LCwxOF0pLFs0LHRoaXMuY29udGV4dC5jYWNoZS5tYXRjaChjKV07Y2FzZSAxNjpyZXR1cm4gUT1BLnNlbnQoKSx0aGlzLmN0eC5kcmF3SW1hZ2UoUSxlLmJvdW5kcy5sZWZ0LShRLndpZHRoKzEwKSxlLmJvdW5kcy50b3ApLFszLDE4XTtjYXNlIDE3OnJldHVybiBBLnNlbnQoKSx0aGlzLmNvbnRleHQubG9nZ2VyLmVycm9yKCJFcnJvciBsb2FkaW5nIGxpc3Qtc3R5bGUtaW1hZ2UgIitjKSxbMywxOF07Y2FzZSAxODpyZXR1cm5bMywyMF07Y2FzZSAxOTp3Lmxpc3RWYWx1ZSYmLTEhPT1lLnN0eWxlcy5saXN0U3R5bGVUeXBlJiYoYT10aGlzLmNyZWF0ZUZvbnRTdHlsZShyKVswXSx0aGlzLmN0eC5mb250PWEsdGhpcy5jdHguZmlsbFN0eWxlPWllKHIuY29sb3IpLHRoaXMuY3R4LnRleHRCYXNlbGluZT0ibWlkZGxlIix0aGlzLmN0eC50ZXh0QWxpZ249InJpZ2h0IixnPW5ldyBkKGUuYm91bmRzLmxlZnQsZS5ib3VuZHMudG9wK1VlKGUuc3R5bGVzLnBhZGRpbmdUb3AsZS5ib3VuZHMud2lkdGgpLGUuYm91bmRzLndpZHRoLFllKHIubGluZUhlaWdodCxyLmZvbnRTaXplLm51bWJlcikvMisxKSx0aGlzLnJlbmRlclRleHRXaXRoTGV0dGVyU3BhY2luZyhuZXcgSnIody5saXN0VmFsdWUsZyksci5sZXR0ZXJTcGFjaW5nLFllKHIubGluZUhlaWdodCxyLmZvbnRTaXplLm51bWJlcikvMisyKSx0aGlzLmN0eC50ZXh0QmFzZWxpbmU9ImJvdHRvbSIsdGhpcy5jdHgudGV4dEFsaWduPSJsZWZ0IiksQS5sYWJlbD0yMDtjYXNlIDIwOnJldHVyblsyXX19KX0pfSxEcy5wcm90b3R5cGUucmVuZGVyU3RhY2tDb250ZW50PWZ1bmN0aW9uKEMpe3JldHVybiBhKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLHQscixCLG4scyxvLGksUSxjLGEsZyx3LFUsbDtyZXR1cm4gSCh0aGlzLGZ1bmN0aW9uKEEpe3N3aXRjaChBLmxhYmVsKXtjYXNlIDA6cmV0dXJuIFB0KEMuZWxlbWVudC5jb250YWluZXIuZmxhZ3MsMTYpLFs0LHRoaXMucmVuZGVyTm9kZUJhY2tncm91bmRBbmRCb3JkZXJzKEMuZWxlbWVudCldO2Nhc2UgMTpBLnNlbnQoKSxlPTAsdD1DLm5lZ2F0aXZlWkluZGV4LEEubGFiZWw9MjtjYXNlIDI6cmV0dXJuIGU8dC5sZW5ndGg/KGw9dFtlXSxbNCx0aGlzLnJlbmRlclN0YWNrKGwpXSk6WzMsNV07Y2FzZSAzOkEuc2VudCgpLEEubGFiZWw9NDtjYXNlIDQ6cmV0dXJuIGUrKyxbMywyXTtjYXNlIDU6cmV0dXJuWzQsdGhpcy5yZW5kZXJOb2RlQ29udGVudChDLmVsZW1lbnQpXTtjYXNlIDY6QS5zZW50KCkscj0wLEI9Qy5ub25JbmxpbmVMZXZlbCxBLmxhYmVsPTc7Y2FzZSA3OnJldHVybiByPEIubGVuZ3RoPyhsPUJbcl0sWzQsdGhpcy5yZW5kZXJOb2RlKGwpXSk6WzMsMTBdO2Nhc2UgODpBLnNlbnQoKSxBLmxhYmVsPTk7Y2FzZSA5OnJldHVybiByKyssWzMsN107Y2FzZSAxMDpuPTAscz1DLm5vblBvc2l0aW9uZWRGbG9hdHMsQS5sYWJlbD0xMTtjYXNlIDExOnJldHVybiBuPHMubGVuZ3RoPyhsPXNbbl0sWzQsdGhpcy5yZW5kZXJTdGFjayhsKV0pOlszLDE0XTtjYXNlIDEyOkEuc2VudCgpLEEubGFiZWw9MTM7Y2FzZSAxMzpyZXR1cm4gbisrLFszLDExXTtjYXNlIDE0Om89MCxpPUMubm9uUG9zaXRpb25lZElubGluZUxldmVsLEEubGFiZWw9MTU7Y2FzZSAxNTpyZXR1cm4gbzxpLmxlbmd0aD8obD1pW29dLFs0LHRoaXMucmVuZGVyU3RhY2sobCldKTpbMywxOF07Y2FzZSAxNjpBLnNlbnQoKSxBLmxhYmVsPTE3O2Nhc2UgMTc6cmV0dXJuIG8rKyxbMywxNV07Y2FzZSAxODpRPTAsYz1DLmlubGluZUxldmVsLEEubGFiZWw9MTk7Y2FzZSAxOTpyZXR1cm4gUTxjLmxlbmd0aD8obD1jW1FdLFs0LHRoaXMucmVuZGVyTm9kZShsKV0pOlszLDIyXTtjYXNlIDIwOkEuc2VudCgpLEEubGFiZWw9MjE7Y2FzZSAyMTpyZXR1cm4gUSsrLFszLDE5XTtjYXNlIDIyOmE9MCxnPUMuemVyb09yQXV0b1pJbmRleE9yVHJhbnNmb3JtZWRPck9wYWNpdHksQS5sYWJlbD0yMztjYXNlIDIzOnJldHVybiBhPGcubGVuZ3RoPyhsPWdbYV0sWzQsdGhpcy5yZW5kZXJTdGFjayhsKV0pOlszLDI2XTtjYXNlIDI0OkEuc2VudCgpLEEubGFiZWw9MjU7Y2FzZSAyNTpyZXR1cm4gYSsrLFszLDIzXTtjYXNlIDI2Onc9MCxVPUMucG9zaXRpdmVaSW5kZXgsQS5sYWJlbD0yNztjYXNlIDI3OnJldHVybiB3PFUubGVuZ3RoPyhsPVVbd10sWzQsdGhpcy5yZW5kZXJTdGFjayhsKV0pOlszLDMwXTtjYXNlIDI4OkEuc2VudCgpLEEubGFiZWw9Mjk7Y2FzZSAyOTpyZXR1cm4gdysrLFszLDI3XTtjYXNlIDMwOnJldHVyblsyXX19KX0pfSxEcy5wcm90b3R5cGUubWFzaz1mdW5jdGlvbihBKXt0aGlzLmN0eC5iZWdpblBhdGgoKSx0aGlzLmN0eC5tb3ZlVG8oMCwwKSx0aGlzLmN0eC5saW5lVG8odGhpcy5jYW52YXMud2lkdGgsMCksdGhpcy5jdHgubGluZVRvKHRoaXMuY2FudmFzLndpZHRoLHRoaXMuY2FudmFzLmhlaWdodCksdGhpcy5jdHgubGluZVRvKDAsdGhpcy5jYW52YXMuaGVpZ2h0KSx0aGlzLmN0eC5saW5lVG8oMCwwKSx0aGlzLmZvcm1hdFBhdGgoQS5zbGljZSgwKS5yZXZlcnNlKCkpLHRoaXMuY3R4LmNsb3NlUGF0aCgpfSxEcy5wcm90b3R5cGUucGF0aD1mdW5jdGlvbihBKXt0aGlzLmN0eC5iZWdpblBhdGgoKSx0aGlzLmZvcm1hdFBhdGgoQSksdGhpcy5jdHguY2xvc2VQYXRoKCl9LERzLnByb3RvdHlwZS5mb3JtYXRQYXRoPWZ1bmN0aW9uKEEpe3ZhciByPXRoaXM7QS5mb3JFYWNoKGZ1bmN0aW9uKEEsZSl7dmFyIHQ9JG4oQSk/QS5zdGFydDpBOzA9PT1lP3IuY3R4Lm1vdmVUbyh0LngsdC55KTpyLmN0eC5saW5lVG8odC54LHQueSksJG4oQSkmJnIuY3R4LmJlemllckN1cnZlVG8oQS5zdGFydENvbnRyb2wueCxBLnN0YXJ0Q29udHJvbC55LEEuZW5kQ29udHJvbC54LEEuZW5kQ29udHJvbC55LEEuZW5kLngsQS5lbmQueSl9KX0sRHMucHJvdG90eXBlLnJlbmRlclJlcGVhdD1mdW5jdGlvbihBLGUsdCxyKXt0aGlzLnBhdGgoQSksdGhpcy5jdHguZmlsbFN0eWxlPWUsdGhpcy5jdHgudHJhbnNsYXRlKHQsciksdGhpcy5jdHguZmlsbCgpLHRoaXMuY3R4LnRyYW5zbGF0ZSgtdCwtcil9LERzLnByb3RvdHlwZS5yZXNpemVJbWFnZT1mdW5jdGlvbihBLGUsdCl7aWYoQS53aWR0aD09PWUmJkEuaGVpZ2h0PT09dClyZXR1cm4gQTt2YXIgcj0obnVsbCE9PShyPXRoaXMuY2FudmFzLm93bmVyRG9jdW1lbnQpJiZ2b2lkIDAhPT1yP3I6ZG9jdW1lbnQpLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO3JldHVybiByLndpZHRoPU1hdGgubWF4KDEsZSksci5oZWlnaHQ9TWF0aC5tYXgoMSx0KSxyLmdldENvbnRleHQoIjJkIikuZHJhd0ltYWdlKEEsMCwwLEEud2lkdGgsQS5oZWlnaHQsMCwwLGUsdCkscn0sRHMucHJvdG90eXBlLnJlbmRlckJhY2tncm91bmRJbWFnZT1mdW5jdGlvbihmKXtyZXR1cm4gYSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgaCxlLGQsdCxyLEI7cmV0dXJuIEgodGhpcyxmdW5jdGlvbihBKXtzd2l0Y2goQS5sYWJlbCl7Y2FzZSAwOmg9Zi5zdHlsZXMuYmFja2dyb3VuZEltYWdlLmxlbmd0aC0xLGU9ZnVuY3Rpb24oZSl7dmFyIHQscixCLG4scyxvLGksUSxjLGEsZyx3LFUsbCxDLHUsRjtyZXR1cm4gSCh0aGlzLGZ1bmN0aW9uKEEpe3N3aXRjaChBLmxhYmVsKXtjYXNlIDA6aWYoMCE9PWUudHlwZSlyZXR1cm5bMyw1XTt0PXZvaWQgMCxyPWUudXJsLEEubGFiZWw9MTtjYXNlIDE6cmV0dXJuIEEudHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCxkLmNvbnRleHQuY2FjaGUubWF0Y2gocildO2Nhc2UgMjpyZXR1cm4gdD1BLnNlbnQoKSxbMyw0XTtjYXNlIDM6cmV0dXJuIEEuc2VudCgpLGQuY29udGV4dC5sb2dnZXIuZXJyb3IoIkVycm9yIGxvYWRpbmcgYmFja2dyb3VuZC1pbWFnZSAiK3IpLFszLDRdO2Nhc2UgNDpyZXR1cm4gdCYmKEI9Q3MoZixoLFt0LndpZHRoLHQuaGVpZ2h0LHQud2lkdGgvdC5oZWlnaHRdKSxvPUJbMF0sZz1CWzFdLHc9QlsyXSxjPUJbM10sYT1CWzRdLHM9ZC5jdHguY3JlYXRlUGF0dGVybihkLnJlc2l6ZUltYWdlKHQsYyxhKSwicmVwZWF0IiksZC5yZW5kZXJSZXBlYXQobyxzLGcsdykpLFszLDZdO2Nhc2UgNToxPT09ZS50eXBlPyhGPUNzKGYsaCxbbnVsbCxudWxsLG51bGxdKSxvPUZbMF0sZz1GWzFdLHc9RlsyXSxjPUZbM10sYT1GWzRdLEM9RWUoZS5hbmdsZSxjLGEpLGw9Q1swXSxCPUNbMV0saT1DWzJdLHU9Q1szXSxRPUNbNF0sKEY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikpLndpZHRoPWMsRi5oZWlnaHQ9YSxDPUYuZ2V0Q29udGV4dCgiMmQiKSxuPUMuY3JlYXRlTGluZWFyR3JhZGllbnQoQix1LGksUSkscGUoZS5zdG9wcyxsKS5mb3JFYWNoKGZ1bmN0aW9uKEEpe3JldHVybiBuLmFkZENvbG9yU3RvcChBLnN0b3AsaWUoQS5jb2xvcikpfSksQy5maWxsU3R5bGU9bixDLmZpbGxSZWN0KDAsMCxjLGEpLDA8YyYmMDxhJiYocz1kLmN0eC5jcmVhdGVQYXR0ZXJuKEYsInJlcGVhdCIpLGQucmVuZGVyUmVwZWF0KG8scyxnLHcpKSk6Mj09PWUudHlwZSYmKHU9Q3MoZixoLFtudWxsLG51bGwsbnVsbF0pLG89dVswXSxpPXVbMV0sUT11WzJdLGM9dVszXSxhPXVbNF0sbD0wPT09ZS5wb3NpdGlvbi5sZW5ndGg/W2dlXTplLnBvc2l0aW9uLGc9VWUobFswXSxjKSx3PVVlKGxbbC5sZW5ndGgtMV0sYSksQz1mdW5jdGlvbihBLGUsdCxyLEIpe3ZhciBuLHMsbyxpLFE9MCxjPTA7c3dpdGNoKEEuc2l6ZSl7Y2FzZSAwOjA9PT1BLnNoYXBlP1E9Yz1NYXRoLm1pbihNYXRoLmFicyhlKSxNYXRoLmFicyhlLXIpLE1hdGguYWJzKHQpLE1hdGguYWJzKHQtQikpOjE9PT1BLnNoYXBlJiYoUT1NYXRoLm1pbihNYXRoLmFicyhlKSxNYXRoLmFicyhlLXIpKSxjPU1hdGgubWluKE1hdGguYWJzKHQpLE1hdGguYWJzKHQtQikpKTticmVhaztjYXNlIDI6MD09PUEuc2hhcGU/UT1jPU1hdGgubWluKEllKGUsdCksSWUoZSx0LUIpLEllKGUtcix0KSxJZShlLXIsdC1CKSk6MT09PUEuc2hhcGUmJihuPU1hdGgubWluKE1hdGguYWJzKHQpLE1hdGguYWJzKHQtQikpL01hdGgubWluKE1hdGguYWJzKGUpLE1hdGguYWJzKGUtcikpLG89KHM9eWUocixCLGUsdCwhMCkpWzBdLGk9c1sxXSxjPW4qKFE9SWUoby1lLChpLXQpL24pKSk7YnJlYWs7Y2FzZSAxOjA9PT1BLnNoYXBlP1E9Yz1NYXRoLm1heChNYXRoLmFicyhlKSxNYXRoLmFicyhlLXIpLE1hdGguYWJzKHQpLE1hdGguYWJzKHQtQikpOjE9PT1BLnNoYXBlJiYoUT1NYXRoLm1heChNYXRoLmFicyhlKSxNYXRoLmFicyhlLXIpKSxjPU1hdGgubWF4KE1hdGguYWJzKHQpLE1hdGguYWJzKHQtQikpKTticmVhaztjYXNlIDM6MD09PUEuc2hhcGU/UT1jPU1hdGgubWF4KEllKGUsdCksSWUoZSx0LUIpLEllKGUtcix0KSxJZShlLXIsdC1CKSk6MT09PUEuc2hhcGUmJihuPU1hdGgubWF4KE1hdGguYWJzKHQpLE1hdGguYWJzKHQtQikpL01hdGgubWF4KE1hdGguYWJzKGUpLE1hdGguYWJzKGUtcikpLG89KHM9eWUocixCLGUsdCwhMSkpWzBdLGk9c1sxXSxjPW4qKFE9SWUoby1lLChpLXQpL24pKSl9cmV0dXJuIEFycmF5LmlzQXJyYXkoQS5zaXplKSYmKFE9VWUoQS5zaXplWzBdLHIpLGM9Mj09PUEuc2l6ZS5sZW5ndGg/VWUoQS5zaXplWzFdLEIpOlEpLFtRLGNdfShlLGcsdyxjLGEpLEY9Q1swXSx1PUNbMV0sMDxGJiYwPHUmJihVPWQuY3R4LmNyZWF0ZVJhZGlhbEdyYWRpZW50KGkrZyxRK3csMCxpK2csUSt3LEYpLHBlKGUuc3RvcHMsMipGKS5mb3JFYWNoKGZ1bmN0aW9uKEEpe3JldHVybiBVLmFkZENvbG9yU3RvcChBLnN0b3AsaWUoQS5jb2xvcikpfSksZC5wYXRoKG8pLGQuY3R4LmZpbGxTdHlsZT1VLEYhPT11PyhsPWYuYm91bmRzLmxlZnQrLjUqZi5ib3VuZHMud2lkdGgsQz1mLmJvdW5kcy50b3ArLjUqZi5ib3VuZHMuaGVpZ2h0LEY9MS8odT11L0YpLGQuY3R4LnNhdmUoKSxkLmN0eC50cmFuc2xhdGUobCxDKSxkLmN0eC50cmFuc2Zvcm0oMSwwLDAsdSwwLDApLGQuY3R4LnRyYW5zbGF0ZSgtbCwtQyksZC5jdHguZmlsbFJlY3QoaSxGKihRLUMpK0MsYyxhKkYpLGQuY3R4LnJlc3RvcmUoKSk6ZC5jdHguZmlsbCgpKSksQS5sYWJlbD02O2Nhc2UgNjpyZXR1cm4gaC0tLFsyXX19KX0sZD10aGlzLHQ9MCxyPWYuc3R5bGVzLmJhY2tncm91bmRJbWFnZS5zbGljZSgwKS5yZXZlcnNlKCksQS5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gdDxyLmxlbmd0aD8oQj1yW3RdLFs1LGUoQildKTpbMyw0XTtjYXNlIDI6QS5zZW50KCksQS5sYWJlbD0zO2Nhc2UgMzpyZXR1cm4gdCsrLFszLDFdO2Nhc2UgNDpyZXR1cm5bMl19fSl9KX0sRHMucHJvdG90eXBlLnJlbmRlclNvbGlkQm9yZGVyPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gYSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gSCh0aGlzLGZ1bmN0aW9uKEEpe3JldHVybiB0aGlzLnBhdGgod3Mocix0KSksdGhpcy5jdHguZmlsbFN0eWxlPWllKGUpLHRoaXMuY3R4LmZpbGwoKSxbMl19KX0pfSxEcy5wcm90b3R5cGUucmVuZGVyRG91YmxlQm9yZGVyPWZ1bmN0aW9uKHQscixCLG4pe3JldHVybiBhKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBIKHRoaXMsZnVuY3Rpb24oQSl7c3dpdGNoKEEubGFiZWwpe2Nhc2UgMDpyZXR1cm4gcjwzP1s0LHRoaXMucmVuZGVyU29saWRCb3JkZXIodCxCLG4pXTpbMywyXTtjYXNlIDE6cmV0dXJuIEEuc2VudCgpLFsyXTtjYXNlIDI6cmV0dXJuIGU9ZnVuY3Rpb24oQSxlKXtzd2l0Y2goZSl7Y2FzZSAwOnJldHVybiBIcyhBLnRvcExlZnRCb3JkZXJCb3gsQS50b3BMZWZ0Qm9yZGVyRG91YmxlT3V0ZXJCb3gsQS50b3BSaWdodEJvcmRlckJveCxBLnRvcFJpZ2h0Qm9yZGVyRG91YmxlT3V0ZXJCb3gpO2Nhc2UgMTpyZXR1cm4gSHMoQS50b3BSaWdodEJvcmRlckJveCxBLnRvcFJpZ2h0Qm9yZGVyRG91YmxlT3V0ZXJCb3gsQS5ib3R0b21SaWdodEJvcmRlckJveCxBLmJvdHRvbVJpZ2h0Qm9yZGVyRG91YmxlT3V0ZXJCb3gpO2Nhc2UgMjpyZXR1cm4gSHMoQS5ib3R0b21SaWdodEJvcmRlckJveCxBLmJvdHRvbVJpZ2h0Qm9yZGVyRG91YmxlT3V0ZXJCb3gsQS5ib3R0b21MZWZ0Qm9yZGVyQm94LEEuYm90dG9tTGVmdEJvcmRlckRvdWJsZU91dGVyQm94KTtkZWZhdWx0OnJldHVybiBIcyhBLmJvdHRvbUxlZnRCb3JkZXJCb3gsQS5ib3R0b21MZWZ0Qm9yZGVyRG91YmxlT3V0ZXJCb3gsQS50b3BMZWZ0Qm9yZGVyQm94LEEudG9wTGVmdEJvcmRlckRvdWJsZU91dGVyQm94KX19KG4sQiksdGhpcy5wYXRoKGUpLHRoaXMuY3R4LmZpbGxTdHlsZT1pZSh0KSx0aGlzLmN0eC5maWxsKCksZT1mdW5jdGlvbihBLGUpe3N3aXRjaChlKXtjYXNlIDA6cmV0dXJuIEhzKEEudG9wTGVmdEJvcmRlckRvdWJsZUlubmVyQm94LEEudG9wTGVmdFBhZGRpbmdCb3gsQS50b3BSaWdodEJvcmRlckRvdWJsZUlubmVyQm94LEEudG9wUmlnaHRQYWRkaW5nQm94KTtjYXNlIDE6cmV0dXJuIEhzKEEudG9wUmlnaHRCb3JkZXJEb3VibGVJbm5lckJveCxBLnRvcFJpZ2h0UGFkZGluZ0JveCxBLmJvdHRvbVJpZ2h0Qm9yZGVyRG91YmxlSW5uZXJCb3gsQS5ib3R0b21SaWdodFBhZGRpbmdCb3gpO2Nhc2UgMjpyZXR1cm4gSHMoQS5ib3R0b21SaWdodEJvcmRlckRvdWJsZUlubmVyQm94LEEuYm90dG9tUmlnaHRQYWRkaW5nQm94LEEuYm90dG9tTGVmdEJvcmRlckRvdWJsZUlubmVyQm94LEEuYm90dG9tTGVmdFBhZGRpbmdCb3gpO2RlZmF1bHQ6cmV0dXJuIEhzKEEuYm90dG9tTGVmdEJvcmRlckRvdWJsZUlubmVyQm94LEEuYm90dG9tTGVmdFBhZGRpbmdCb3gsQS50b3BMZWZ0Qm9yZGVyRG91YmxlSW5uZXJCb3gsQS50b3BMZWZ0UGFkZGluZ0JveCl9fShuLEIpLHRoaXMucGF0aChlKSx0aGlzLmN0eC5maWxsKCksWzJdfX0pfSl9LERzLnByb3RvdHlwZS5yZW5kZXJOb2RlQmFja2dyb3VuZEFuZEJvcmRlcnM9ZnVuY3Rpb24oYyl7cmV0dXJuIGEodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGUsdCxyLEIsbixzLG8saSxRPXRoaXM7cmV0dXJuIEgodGhpcyxmdW5jdGlvbihBKXtzd2l0Y2goQS5sYWJlbCl7Y2FzZSAwOnJldHVybih0aGlzLmFwcGx5RWZmZWN0cyhjLmdldEVmZmVjdHMoMikpLGU9Yy5jb250YWluZXIuc3R5bGVzLHQ9IW9lKGUuYmFja2dyb3VuZENvbG9yKXx8ZS5iYWNrZ3JvdW5kSW1hZ2UubGVuZ3RoLHI9W3tzdHlsZTplLmJvcmRlclRvcFN0eWxlLGNvbG9yOmUuYm9yZGVyVG9wQ29sb3Isd2lkdGg6ZS5ib3JkZXJUb3BXaWR0aH0se3N0eWxlOmUuYm9yZGVyUmlnaHRTdHlsZSxjb2xvcjplLmJvcmRlclJpZ2h0Q29sb3Isd2lkdGg6ZS5ib3JkZXJSaWdodFdpZHRofSx7c3R5bGU6ZS5ib3JkZXJCb3R0b21TdHlsZSxjb2xvcjplLmJvcmRlckJvdHRvbUNvbG9yLHdpZHRoOmUuYm9yZGVyQm90dG9tV2lkdGh9LHtzdHlsZTplLmJvcmRlckxlZnRTdHlsZSxjb2xvcjplLmJvcmRlckxlZnRDb2xvcix3aWR0aDplLmJvcmRlckxlZnRXaWR0aH1dLEI9TXMoRXMoZS5iYWNrZ3JvdW5kQ2xpcCwwKSxjLmN1cnZlcyksdHx8ZS5ib3hTaGFkb3cubGVuZ3RoKT8odGhpcy5jdHguc2F2ZSgpLHRoaXMucGF0aChCKSx0aGlzLmN0eC5jbGlwKCksb2UoZS5iYWNrZ3JvdW5kQ29sb3IpfHwodGhpcy5jdHguZmlsbFN0eWxlPWllKGUuYmFja2dyb3VuZENvbG9yKSx0aGlzLmN0eC5maWxsKCkpLFs0LHRoaXMucmVuZGVyQmFja2dyb3VuZEltYWdlKGMuY29udGFpbmVyKV0pOlszLDJdO2Nhc2UgMTpBLnNlbnQoKSx0aGlzLmN0eC5yZXN0b3JlKCksZS5ib3hTaGFkb3cuc2xpY2UoMCkucmV2ZXJzZSgpLmZvckVhY2goZnVuY3Rpb24oQSl7US5jdHguc2F2ZSgpO3ZhciB0LHIsQixuLGU9dHMoYy5jdXJ2ZXMpLHM9QS5pbnNldD8wOjFlNCxvPSh0PS1zKyhBLmluc2V0PzE6LTEpKkEuc3ByZWFkLm51bWJlcixyPShBLmluc2V0PzE6LTEpKkEuc3ByZWFkLm51bWJlcixCPUEuc3ByZWFkLm51bWJlciooQS5pbnNldD8tMjoyKSxuPUEuc3ByZWFkLm51bWJlciooQS5pbnNldD8tMjoyKSxlLm1hcChmdW5jdGlvbihBLGUpe3N3aXRjaChlKXtjYXNlIDA6cmV0dXJuIEEuYWRkKHQscik7Y2FzZSAxOnJldHVybiBBLmFkZCh0K0Iscik7Y2FzZSAyOnJldHVybiBBLmFkZCh0K0IscituKTtjYXNlIDM6cmV0dXJuIEEuYWRkKHQscituKX1yZXR1cm4gQX0pKTtBLmluc2V0PyhRLnBhdGgoZSksUS5jdHguY2xpcCgpLFEubWFzayhvKSk6KFEubWFzayhlKSxRLmN0eC5jbGlwKCksUS5wYXRoKG8pKSxRLmN0eC5zaGFkb3dPZmZzZXRYPUEub2Zmc2V0WC5udW1iZXIrcyxRLmN0eC5zaGFkb3dPZmZzZXRZPUEub2Zmc2V0WS5udW1iZXIsUS5jdHguc2hhZG93Q29sb3I9aWUoQS5jb2xvciksUS5jdHguc2hhZG93Qmx1cj1BLmJsdXIubnVtYmVyLFEuY3R4LmZpbGxTdHlsZT1BLmluc2V0P2llKEEuY29sb3IpOiJyZ2JhKDAsMCwwLDEpIixRLmN0eC5maWxsKCksUS5jdHgucmVzdG9yZSgpfSksQS5sYWJlbD0yO2Nhc2UgMjpzPW49MCxvPXIsQS5sYWJlbD0zO2Nhc2UgMzpyZXR1cm4gczxvLmxlbmd0aD8wIT09KGk9b1tzXSkuc3R5bGUmJiFvZShpLmNvbG9yKSYmMDxpLndpZHRoPzIhPT1pLnN0eWxlP1szLDVdOls0LHRoaXMucmVuZGVyRGFzaGVkRG90dGVkQm9yZGVyKGkuY29sb3IsaS53aWR0aCxuLGMuY3VydmVzLDIpXTpbMywxMV06WzMsMTNdO2Nhc2UgNDpyZXR1cm4gQS5zZW50KCksWzMsMTFdO2Nhc2UgNTpyZXR1cm4gMyE9PWkuc3R5bGU/WzMsN106WzQsdGhpcy5yZW5kZXJEYXNoZWREb3R0ZWRCb3JkZXIoaS5jb2xvcixpLndpZHRoLG4sYy5jdXJ2ZXMsMyldO2Nhc2UgNjpyZXR1cm4gQS5zZW50KCksWzMsMTFdO2Nhc2UgNzpyZXR1cm4gNCE9PWkuc3R5bGU/WzMsOV06WzQsdGhpcy5yZW5kZXJEb3VibGVCb3JkZXIoaS5jb2xvcixpLndpZHRoLG4sYy5jdXJ2ZXMpXTtjYXNlIDg6cmV0dXJuIEEuc2VudCgpLFszLDExXTtjYXNlIDk6cmV0dXJuWzQsdGhpcy5yZW5kZXJTb2xpZEJvcmRlcihpLmNvbG9yLG4sYy5jdXJ2ZXMpXTtjYXNlIDEwOkEuc2VudCgpLEEubGFiZWw9MTE7Y2FzZSAxMTpuKyssQS5sYWJlbD0xMjtjYXNlIDEyOnJldHVybiBzKyssWzMsM107Y2FzZSAxMzpyZXR1cm5bMl19fSl9KX0sRHMucHJvdG90eXBlLnJlbmRlckRhc2hlZERvdHRlZEJvcmRlcj1mdW5jdGlvbihnLHcsVSxsLEMpe3JldHVybiBhKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlLHQscixCLG4scyxvLGksUSxjLGE7cmV0dXJuIEgodGhpcyxmdW5jdGlvbihBKXtyZXR1cm4gdGhpcy5jdHguc2F2ZSgpLFE9ZnVuY3Rpb24oQSxlKXtzd2l0Y2goZSl7Y2FzZSAwOnJldHVybiBmcyhBLnRvcExlZnRCb3JkZXJTdHJva2UsQS50b3BSaWdodEJvcmRlclN0cm9rZSk7Y2FzZSAxOnJldHVybiBmcyhBLnRvcFJpZ2h0Qm9yZGVyU3Ryb2tlLEEuYm90dG9tUmlnaHRCb3JkZXJTdHJva2UpO2Nhc2UgMjpyZXR1cm4gZnMoQS5ib3R0b21SaWdodEJvcmRlclN0cm9rZSxBLmJvdHRvbUxlZnRCb3JkZXJTdHJva2UpO2RlZmF1bHQ6cmV0dXJuIGZzKEEuYm90dG9tTGVmdEJvcmRlclN0cm9rZSxBLnRvcExlZnRCb3JkZXJTdHJva2UpfX0obCxVKSxlPXdzKGwsVSksMj09PUMmJih0aGlzLnBhdGgoZSksdGhpcy5jdHguY2xpcCgpKSxzPSRuKGVbMF0pPyh0PWVbMF0uc3RhcnQueCxlWzBdLnN0YXJ0LnkpOih0PWVbMF0ueCxlWzBdLnkpLG89JG4oZVsxXSk/KHI9ZVsxXS5lbmQueCxlWzFdLmVuZC55KToocj1lWzFdLngsZVsxXS55KSxCPTA9PT1VfHwyPT09VT9NYXRoLmFicyh0LXIpOk1hdGguYWJzKHMtbyksdGhpcy5jdHguYmVnaW5QYXRoKCksMz09PUM/dGhpcy5mb3JtYXRQYXRoKFEpOnRoaXMuZm9ybWF0UGF0aChlLnNsaWNlKDAsMikpLG49dzwzPzMqdzoyKncscz13PDM/Mip3OncsMz09PUMmJihzPW49dyksbz0hMCxCPD0yKm4/bz0hMTpCPD0yKm4rcz8obio9aT1CLygyKm4rcykscyo9aSk6KFE9TWF0aC5mbG9vcigoQitzKS8obitzKSksaT0oQi1RKm4pLyhRLTEpLHM9KFE9KEItKFErMSkqbikvUSk8PTB8fE1hdGguYWJzKHMtaSk8TWF0aC5hYnMocy1RKT9pOlEpLG8mJigzPT09Qz90aGlzLmN0eC5zZXRMaW5lRGFzaChbMCxuK3NdKTp0aGlzLmN0eC5zZXRMaW5lRGFzaChbbixzXSkpLDM9PT1DPyh0aGlzLmN0eC5saW5lQ2FwPSJyb3VuZCIsdGhpcy5jdHgubGluZVdpZHRoPXcpOnRoaXMuY3R4LmxpbmVXaWR0aD0yKncrMS4xLHRoaXMuY3R4LnN0cm9rZVN0eWxlPWllKGcpLHRoaXMuY3R4LnN0cm9rZSgpLHRoaXMuY3R4LnNldExpbmVEYXNoKFtdKSwyPT09QyYmKCRuKGVbMF0pJiYoYz1lWzNdLGE9ZVswXSx0aGlzLmN0eC5iZWdpblBhdGgoKSx0aGlzLmZvcm1hdFBhdGgoW25ldyBabihjLmVuZC54LGMuZW5kLnkpLG5ldyBabihhLnN0YXJ0LngsYS5zdGFydC55KV0pLHRoaXMuY3R4LnN0cm9rZSgpKSwkbihlWzFdKSYmKGM9ZVsxXSxhPWVbMl0sdGhpcy5jdHguYmVnaW5QYXRoKCksdGhpcy5mb3JtYXRQYXRoKFtuZXcgWm4oYy5lbmQueCxjLmVuZC55KSxuZXcgWm4oYS5zdGFydC54LGEuc3RhcnQueSldKSx0aGlzLmN0eC5zdHJva2UoKSkpLHRoaXMuY3R4LnJlc3RvcmUoKSxbMl19KX0pfSxEcy5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKEIpe3JldHVybiBhKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBIKHRoaXMsZnVuY3Rpb24oQSl7c3dpdGNoKEEubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5vcHRpb25zLmJhY2tncm91bmRDb2xvciYmKHRoaXMuY3R4LmZpbGxTdHlsZT1pZSh0aGlzLm9wdGlvbnMuYmFja2dyb3VuZENvbG9yKSx0aGlzLmN0eC5maWxsUmVjdCh0aGlzLm9wdGlvbnMueCx0aGlzLm9wdGlvbnMueSx0aGlzLm9wdGlvbnMud2lkdGgsdGhpcy5vcHRpb25zLmhlaWdodCkpLHQ9bmV3IGFzKGU9QixudWxsKSxyPW5ldyBjcyh0KSxocyh0LHIscixlPVtdKSxkcyh0LmNvbnRhaW5lcixlKSxbNCx0aGlzLnJlbmRlclN0YWNrKHIpXTtjYXNlIDE6cmV0dXJuIEEuc2VudCgpLHRoaXMuYXBwbHlFZmZlY3RzKFtdKSxbMix0aGlzLmNhbnZhc119dmFyIGUsdCxyfSl9KX0sRHMpO2Z1bmN0aW9uIERzKEEsZSl7QT1Mcy5jYWxsKHRoaXMsQSxlKXx8dGhpcztyZXR1cm4gQS5fYWN0aXZlRWZmZWN0cz1bXSxBLmNhbnZhcz1lLmNhbnZhc3x8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksQS5jdHg9QS5jYW52YXMuZ2V0Q29udGV4dCgiMmQiKSxlLmNhbnZhc3x8KEEuY2FudmFzLndpZHRoPU1hdGguZmxvb3IoZS53aWR0aCplLnNjYWxlKSxBLmNhbnZhcy5oZWlnaHQ9TWF0aC5mbG9vcihlLmhlaWdodCplLnNjYWxlKSxBLmNhbnZhcy5zdHlsZS53aWR0aD1lLndpZHRoKyJweCIsQS5jYW52YXMuc3R5bGUuaGVpZ2h0PWUuaGVpZ2h0KyJweCIpLEEuZm9udE1ldHJpY3M9bmV3IEtzKGRvY3VtZW50KSxBLmN0eC5zY2FsZShBLm9wdGlvbnMuc2NhbGUsQS5vcHRpb25zLnNjYWxlKSxBLmN0eC50cmFuc2xhdGUoLWUueCwtZS55KSxBLmN0eC50ZXh0QmFzZWxpbmU9ImJvdHRvbSIsQS5fYWN0aXZlRWZmZWN0cz1bXSxBLmNvbnRleHQubG9nZ2VyLmRlYnVnKCJDYW52YXMgcmVuZGVyZXIgaW5pdGlhbGl6ZWQgKCIrZS53aWR0aCsieCIrZS5oZWlnaHQrIikgd2l0aCBzY2FsZSAiK2Uuc2NhbGUpLEF9dmFyIHZzLHhzPWZ1bmN0aW9uKEEpe3JldHVybiBBIGluc3RhbmNlb2YgTEJ8fChBIGluc3RhbmNlb2YgeUJ8fEEgaW5zdGFuY2VvZiBwQiYmQS50eXBlIT09ZEImJkEudHlwZSE9PWhCKX0sTXM9ZnVuY3Rpb24oQSxlKXtzd2l0Y2goQSl7Y2FzZSAwOnJldHVybiB0cyhlKTtjYXNlIDI6cmV0dXJuW2UudG9wTGVmdENvbnRlbnRCb3gsZS50b3BSaWdodENvbnRlbnRCb3gsZS5ib3R0b21SaWdodENvbnRlbnRCb3gsZS5ib3R0b21MZWZ0Q29udGVudEJveF07ZGVmYXVsdDpyZXR1cm4gcnMoZSl9fSxTcz1mdW5jdGlvbihBKXtzd2l0Y2goQSl7Y2FzZSAxOnJldHVybiJjZW50ZXIiO2Nhc2UgMjpyZXR1cm4icmlnaHQiO2RlZmF1bHQ6cmV0dXJuImxlZnQifX0sVHM9WyItYXBwbGUtc3lzdGVtIiwic3lzdGVtLXVpIl0sR3M9ZnVuY3Rpb24oQSl7cmV0dXJuL2lQaG9uZSBPUyAxNV8oMHwxKS8udGVzdCh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudCk/QS5maWx0ZXIoZnVuY3Rpb24oQSl7cmV0dXJuLTE9PT1Ucy5pbmRleE9mKEEpfSk6QX0sT3M9KEEoVnMsdnM9aGUpLFZzLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGEodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIEgodGhpcyxmdW5jdGlvbihBKXtzd2l0Y2goQS5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPU5yKHRoaXMub3B0aW9ucy53aWR0aCp0aGlzLm9wdGlvbnMuc2NhbGUsdGhpcy5vcHRpb25zLmhlaWdodCp0aGlzLm9wdGlvbnMuc2NhbGUsdGhpcy5vcHRpb25zLnNjYWxlLHRoaXMub3B0aW9ucy5zY2FsZSx0KSxbNCxrcyhlKV07Y2FzZSAxOnJldHVybiBlPUEuc2VudCgpLHRoaXMub3B0aW9ucy5iYWNrZ3JvdW5kQ29sb3ImJih0aGlzLmN0eC5maWxsU3R5bGU9aWUodGhpcy5vcHRpb25zLmJhY2tncm91bmRDb2xvciksdGhpcy5jdHguZmlsbFJlY3QoMCwwLHRoaXMub3B0aW9ucy53aWR0aCp0aGlzLm9wdGlvbnMuc2NhbGUsdGhpcy5vcHRpb25zLmhlaWdodCp0aGlzLm9wdGlvbnMuc2NhbGUpKSx0aGlzLmN0eC5kcmF3SW1hZ2UoZSwtdGhpcy5vcHRpb25zLngqdGhpcy5vcHRpb25zLnNjYWxlLC10aGlzLm9wdGlvbnMueSp0aGlzLm9wdGlvbnMuc2NhbGUpLFsyLHRoaXMuY2FudmFzXX19KX0pfSxWcyk7ZnVuY3Rpb24gVnMoQSxlKXtBPXZzLmNhbGwodGhpcyxBLGUpfHx0aGlzO3JldHVybiBBLmNhbnZhcz1lLmNhbnZhc3x8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksQS5jdHg9QS5jYW52YXMuZ2V0Q29udGV4dCgiMmQiKSxBLm9wdGlvbnM9ZSxBLmNhbnZhcy53aWR0aD1NYXRoLmZsb29yKGUud2lkdGgqZS5zY2FsZSksQS5jYW52YXMuaGVpZ2h0PU1hdGguZmxvb3IoZS5oZWlnaHQqZS5zY2FsZSksQS5jYW52YXMuc3R5bGUud2lkdGg9ZS53aWR0aCsicHgiLEEuY2FudmFzLnN0eWxlLmhlaWdodD1lLmhlaWdodCsicHgiLEEuY3R4LnNjYWxlKEEub3B0aW9ucy5zY2FsZSxBLm9wdGlvbnMuc2NhbGUpLEEuY3R4LnRyYW5zbGF0ZSgtZS54LC1lLnkpLEEuY29udGV4dC5sb2dnZXIuZGVidWcoIkVYUEVSSU1FTlRBTCBGb3JlaWduT2JqZWN0IHJlbmRlcmVyIGluaXRpYWxpemVkICgiK2Uud2lkdGgrIngiK2UuaGVpZ2h0KyIgYXQgIitlLngrIiwiK2UueSsiKSB3aXRoIHNjYWxlICIrZS5zY2FsZSksQX12YXIga3M9ZnVuY3Rpb24ocil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKEEsZSl7dmFyIHQ9bmV3IEltYWdlO3Qub25sb2FkPWZ1bmN0aW9uKCl7QSh0KX0sdC5vbmVycm9yPWUsdC5zcmM9ImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCIrZW5jb2RlVVJJQ29tcG9uZW50KChuZXcgWE1MU2VyaWFsaXplcikuc2VyaWFsaXplVG9TdHJpbmcocikpfSl9LFJzPShOcy5wcm90b3R5cGUuZGVidWc9ZnVuY3Rpb24oKXtmb3IodmFyIEE9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspQVtlXT1hcmd1bWVudHNbZV07dGhpcy5lbmFibGVkJiYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5jb25zb2xlJiYiZnVuY3Rpb24iPT10eXBlb2YgY29uc29sZS5kZWJ1Zz9jb25zb2xlLmRlYnVnLmFwcGx5KGNvbnNvbGUsdChbdGhpcy5pZCx0aGlzLmdldFRpbWUoKSsibXMiXSxBKSk6dGhpcy5pbmZvLmFwcGx5KHRoaXMsQSkpfSxOcy5wcm90b3R5cGUuZ2V0VGltZT1mdW5jdGlvbigpe3JldHVybiBEYXRlLm5vdygpLXRoaXMuc3RhcnR9LE5zLnByb3RvdHlwZS5pbmZvPWZ1bmN0aW9uKCl7Zm9yKHZhciBBPVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKUFbZV09YXJndW1lbnRzW2VdO3RoaXMuZW5hYmxlZCYmInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5jb25zb2xlJiYiZnVuY3Rpb24iPT10eXBlb2YgY29uc29sZS5pbmZvJiZjb25zb2xlLmluZm8uYXBwbHkoY29uc29sZSx0KFt0aGlzLmlkLHRoaXMuZ2V0VGltZSgpKyJtcyJdLEEpKX0sTnMucHJvdG90eXBlLndhcm49ZnVuY3Rpb24oKXtmb3IodmFyIEE9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspQVtlXT1hcmd1bWVudHNbZV07dGhpcy5lbmFibGVkJiYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5jb25zb2xlJiYiZnVuY3Rpb24iPT10eXBlb2YgY29uc29sZS53YXJuP2NvbnNvbGUud2Fybi5hcHBseShjb25zb2xlLHQoW3RoaXMuaWQsdGhpcy5nZXRUaW1lKCkrIm1zIl0sQSkpOnRoaXMuaW5mby5hcHBseSh0aGlzLEEpKX0sTnMucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKCl7Zm9yKHZhciBBPVtdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKUFbZV09YXJndW1lbnRzW2VdO3RoaXMuZW5hYmxlZCYmKCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuY29uc29sZSYmImZ1bmN0aW9uIj09dHlwZW9mIGNvbnNvbGUuZXJyb3I/Y29uc29sZS5lcnJvci5hcHBseShjb25zb2xlLHQoW3RoaXMuaWQsdGhpcy5nZXRUaW1lKCkrIm1zIl0sQSkpOnRoaXMuaW5mby5hcHBseSh0aGlzLEEpKX0sTnMuaW5zdGFuY2VzPXt9LE5zKTtmdW5jdGlvbiBOcyhBKXt2YXIgZT1BLmlkLEE9QS5lbmFibGVkO3RoaXMuaWQ9ZSx0aGlzLmVuYWJsZWQ9QSx0aGlzLnN0YXJ0PURhdGUubm93KCl9dmFyIFBzPShYcy5pbnN0YW5jZUNvdW50PTEsWHMpO2Z1bmN0aW9uIFhzKEEsZSl7dGhpcy53aW5kb3dCb3VuZHM9ZSx0aGlzLmluc3RhbmNlTmFtZT0iIyIrWHMuaW5zdGFuY2VDb3VudCsrLHRoaXMubG9nZ2VyPW5ldyBScyh7aWQ6dGhpcy5pbnN0YW5jZU5hbWUsZW5hYmxlZDpBLmxvZ2dpbmd9KSx0aGlzLmNhY2hlPW51bGwhPT0oZT1BLmNhY2hlKSYmdm9pZCAwIT09ZT9lOm5ldyBPbih0aGlzLEEpfSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZUbi5zZXRDb250ZXh0KHdpbmRvdyk7dmFyIEpzPWZ1bmN0aW9uKHUsRil7cmV0dXJuIGEodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZSx0LHIsQixuLHMsbyxpLFEsYyxhLGcsdyxVLGwsQztyZXR1cm4gSCh0aGlzLGZ1bmN0aW9uKEEpe3N3aXRjaChBLmxhYmVsKXtjYXNlIDA6aWYoIXV8fCJvYmplY3QiIT10eXBlb2YgdSlyZXR1cm5bMixQcm9taXNlLnJlamVjdCgiSW52YWxpZCBlbGVtZW50IHByb3ZpZGVkIGFzIGZpcnN0IGFyZ3VtZW50IildO2lmKCEoZT11Lm93bmVyRG9jdW1lbnQpKXRocm93IG5ldyBFcnJvcigiRWxlbWVudCBpcyBub3QgYXR0YWNoZWQgdG8gYSBEb2N1bWVudCIpO2lmKCEodD1lLmRlZmF1bHRWaWV3KSl0aHJvdyBuZXcgRXJyb3IoIkRvY3VtZW50IGlzIG5vdCBhdHRhY2hlZCB0byBhIFdpbmRvdyIpO3JldHVybiB3PXthbGxvd1RhaW50Om51bGwhPT0oVT1GLmFsbG93VGFpbnQpJiZ2b2lkIDAhPT1VJiZVLGltYWdlVGltZW91dDpudWxsIT09KGM9Ri5pbWFnZVRpbWVvdXQpJiZ2b2lkIDAhPT1jP2M6MTVlMyxwcm94eTpGLnByb3h5LHVzZUNPUlM6bnVsbCE9PShhPUYudXNlQ09SUykmJnZvaWQgMCE9PWEmJmF9LFU9aCh7bG9nZ2luZzpudWxsPT09KGc9Ri5sb2dnaW5nKXx8dm9pZCAwPT09Z3x8ZyxjYWNoZTpGLmNhY2hlfSx3KSxjPXt3aW5kb3dXaWR0aDpudWxsIT09KGM9Ri53aW5kb3dXaWR0aCkmJnZvaWQgMCE9PWM/Yzp0LmlubmVyV2lkdGgsd2luZG93SGVpZ2h0Om51bGwhPT0oYT1GLndpbmRvd0hlaWdodCkmJnZvaWQgMCE9PWE/YTp0LmlubmVySGVpZ2h0LHNjcm9sbFg6bnVsbCE9PShnPUYuc2Nyb2xsWCkmJnZvaWQgMCE9PWc/Zzp0LnBhZ2VYT2Zmc2V0LHNjcm9sbFk6bnVsbCE9PSh3PUYuc2Nyb2xsWSkmJnZvaWQgMCE9PXc/dzp0LnBhZ2VZT2Zmc2V0fSxhPW5ldyBkKGMuc2Nyb2xsWCxjLnNjcm9sbFksYy53aW5kb3dXaWR0aCxjLndpbmRvd0hlaWdodCksZz1uZXcgUHMoVSxhKSxjPW51bGwhPT0odz1GLmZvcmVpZ25PYmplY3RSZW5kZXJpbmcpJiZ2b2lkIDAhPT13JiZ3LHc9e2FsbG93VGFpbnQ6bnVsbCE9PShVPUYuYWxsb3dUYWludCkmJnZvaWQgMCE9PVUmJlUsb25jbG9uZTpGLm9uY2xvbmUsaWdub3JlRWxlbWVudHM6Ri5pZ25vcmVFbGVtZW50cyxpbmxpbmVJbWFnZXM6Yyxjb3B5U3R5bGVzOmN9LGcubG9nZ2VyLmRlYnVnKCJTdGFydGluZyBkb2N1bWVudCBjbG9uZSB3aXRoIHNpemUgIithLndpZHRoKyJ4IithLmhlaWdodCsiIHNjcm9sbGVkIHRvICIrLWEubGVmdCsiLCIrLWEudG9wKSxVPW5ldyBkbihnLHUsdyksKHc9VS5jbG9uZWRSZWZlcmVuY2VFbGVtZW50KT9bNCxVLnRvSUZyYW1lKGUsYSldOlsyLFByb21pc2UucmVqZWN0KCJVbmFibGUgdG8gZmluZCBlbGVtZW50IGluIGNsb25lZCBpZnJhbWUiKV07Y2FzZSAxOnJldHVybihyPUEuc2VudCgpLGw9akIodyl8fCJIVE1MIj09PXcudGFnTmFtZT9mdW5jdGlvbihBKXt2YXIgZT1BLmJvZHksdD1BLmRvY3VtZW50RWxlbWVudDtpZighZXx8IXQpdGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gZ2V0IGRvY3VtZW50IHNpemUiKTtBPU1hdGgubWF4KE1hdGgubWF4KGUuc2Nyb2xsV2lkdGgsdC5zY3JvbGxXaWR0aCksTWF0aC5tYXgoZS5vZmZzZXRXaWR0aCx0Lm9mZnNldFdpZHRoKSxNYXRoLm1heChlLmNsaWVudFdpZHRoLHQuY2xpZW50V2lkdGgpKSx0PU1hdGgubWF4KE1hdGgubWF4KGUuc2Nyb2xsSGVpZ2h0LHQuc2Nyb2xsSGVpZ2h0KSxNYXRoLm1heChlLm9mZnNldEhlaWdodCx0Lm9mZnNldEhlaWdodCksTWF0aC5tYXgoZS5jbGllbnRIZWlnaHQsdC5jbGllbnRIZWlnaHQpKTtyZXR1cm4gbmV3IGQoMCwwLEEsdCl9KHcub3duZXJEb2N1bWVudCk6ZihnLHcpLEI9bC53aWR0aCxuPWwuaGVpZ2h0LHM9bC5sZWZ0LG89bC50b3AsaT1ZcyhnLHcsRi5iYWNrZ3JvdW5kQ29sb3IpLGw9e2NhbnZhczpGLmNhbnZhcyxiYWNrZ3JvdW5kQ29sb3I6aSxzY2FsZTpudWxsIT09KGw9bnVsbCE9PShsPUYuc2NhbGUpJiZ2b2lkIDAhPT1sP2w6dC5kZXZpY2VQaXhlbFJhdGlvKSYmdm9pZCAwIT09bD9sOjEseDoobnVsbCE9PShsPUYueCkmJnZvaWQgMCE9PWw/bDowKStzLHk6KG51bGwhPT0obD1GLnkpJiZ2b2lkIDAhPT1sP2w6MCkrbyx3aWR0aDpudWxsIT09KGw9Ri53aWR0aCkmJnZvaWQgMCE9PWw/bDpNYXRoLmNlaWwoQiksaGVpZ2h0Om51bGwhPT0obD1GLmhlaWdodCkmJnZvaWQgMCE9PWw/bDpNYXRoLmNlaWwobil9LGMpPyhnLmxvZ2dlci5kZWJ1ZygiRG9jdW1lbnQgY2xvbmVkLCB1c2luZyBmb3JlaWduIG9iamVjdCByZW5kZXJpbmciKSxbNCxuZXcgT3MoZyxsKS5yZW5kZXIodyldKTpbMywzXTtjYXNlIDI6cmV0dXJuIFE9QS5zZW50KCksWzMsNV07Y2FzZSAzOnJldHVybiBnLmxvZ2dlci5kZWJ1ZygiRG9jdW1lbnQgY2xvbmVkLCBlbGVtZW50IGxvY2F0ZWQgYXQgIitzKyIsIitvKyIgd2l0aCBzaXplICIrQisieCIrbisiIHVzaW5nIGNvbXB1dGVkIHJlbmRlcmluZyIpLGcubG9nZ2VyLmRlYnVnKCJTdGFydGluZyBET00gcGFyc2luZyIpLEM9a0IoZyx3KSxpPT09Qy5zdHlsZXMuYmFja2dyb3VuZENvbG9yJiYoQy5zdHlsZXMuYmFja2dyb3VuZENvbG9yPUxlLlRSQU5TUEFSRU5UKSxnLmxvZ2dlci5kZWJ1ZygiU3RhcnRpbmcgcmVuZGVyZXIgZm9yIGVsZW1lbnQgYXQgIitsLngrIiwiK2wueSsiIHdpdGggc2l6ZSAiK2wud2lkdGgrIngiK2wuaGVpZ2h0KSxbNCxuZXcgYnMoZyxsKS5yZW5kZXIoQyldO2Nhc2UgNDpRPUEuc2VudCgpLEEubGFiZWw9NTtjYXNlIDU6cmV0dXJuIG51bGwhPT0oQz1GLnJlbW92ZUNvbnRhaW5lcikmJnZvaWQgMCE9PUMmJiFDfHxkbi5kZXN0cm95KHIpfHxnLmxvZ2dlci5lcnJvcigiQ2Fubm90IGRldGFjaCBjbG9uZWQgaWZyYW1lIGFzIGl0IGlzIG5vdCBpbiB0aGUgRE9NIGFueW1vcmUiKSxnLmxvZ2dlci5kZWJ1ZygiRmluaXNoZWQgcmVuZGVyaW5nIiksWzIsUV19fSl9KX0sWXM9ZnVuY3Rpb24oQSxlLHQpe3ZhciByPWUub3duZXJEb2N1bWVudCxCPXIuZG9jdW1lbnRFbGVtZW50P2ZlKEEsZ2V0Q29tcHV0ZWRTdHlsZShyLmRvY3VtZW50RWxlbWVudCkuYmFja2dyb3VuZENvbG9yKTpMZS5UUkFOU1BBUkVOVCxuPXIuYm9keT9mZShBLGdldENvbXB1dGVkU3R5bGUoci5ib2R5KS5iYWNrZ3JvdW5kQ29sb3IpOkxlLlRSQU5TUEFSRU5ULHQ9InN0cmluZyI9PXR5cGVvZiB0P2ZlKEEsdCk6bnVsbD09PXQ/TGUuVFJBTlNQQVJFTlQ6NDI5NDk2NzI5NTtyZXR1cm4gZT09PXIuZG9jdW1lbnRFbGVtZW50P29lKEIpP29lKG4pP3Q6bjpCOnR9O3JldHVybiBmdW5jdGlvbihBLGUpe3JldHVybiBKcyhBLGU9dm9pZCAwPT09ZT97fTplKX19KTsKLyog57uE5Y23572R6K+V5Y235a+85Ye677ya5pys5paH5Lu25Lya5ZKM5pys5ZywIGh0bWwyY2FudmFzIOS4gOi1t+aJk+WMheS4uuS5puetvuiEmuacrOOAgiAqLwooKCkgPT4gewogIGNvbnN0IG9sZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd4a3ctbG9jYWwtZXhwb3J0LXBhbmVsJyk7CiAgaWYgKG9sZCkgeyBpZiAob2xkLmRhdGFzZXQudmVyc2lvbiA9PT0gJzknKSB7IG9sZC5yZW1vdmUoKTsgcmV0dXJuOyB9IG9sZC5yZW1vdmUoKTsgfQoKICBjb25zdCByb290cyA9IFsnYXJ0aWNsZS5leGFtLWNudCcsICdhcnRpY2xlLnBhcGVyLWNudCcsICdkaXYucW1sX3BhcGVyLnF1ZXMtbGlzdCcsICdkaXYucW1sX3BhcGVyJywgJ3NlY3Rpb24jcXVlc0xpc3RCb3gnLCAnLnF1ZXMtbGlzdCddOwogIGNvbnN0IHNvdXJjZSA9IHJvb3RzLm1hcChzID0+IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IocykpLmZpbmQoQm9vbGVhbik7CiAgaWYgKCFzb3VyY2UpIHsgYWxlcnQoJ+ayoeacieaJvuWIsOW9k+WJjemhtemdoueahOivleWNt+ato+aWh+OAguivt+WFiOaJk+W8gOivleWNt+ivpuaDhemhteWQjuWGjei/kOihjOOAgicpOyByZXR1cm47IH0KCiAgY29uc3QgcGFuZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICBwYW5lbC5pZCA9ICd4a3ctbG9jYWwtZXhwb3J0LXBhbmVsJzsKICBwYW5lbC5kYXRhc2V0LnZlcnNpb24gPSAnOSc7CiAgcGFuZWwuc3R5bGUuY3NzVGV4dCA9ICdwb3NpdGlvbjpmaXhlZDtyaWdodDoxOHB4O3RvcDoxOHB4O3otaW5kZXg6MjE0NzQ4MzY0NztwYWRkaW5nOjEycHg7YmFja2dyb3VuZDojZmZmO2NvbG9yOiMxMTE7Ym9yZGVyOjFweCBzb2xpZCAjYmJiO2JvcmRlci1yYWRpdXM6OHB4O2JveC1zaGFkb3c6MCA0cHggMjBweCAjMDAwMztmb250OjE0cHggTWljcm9zb2Z0IFlhSGVpLEFyaWFsLHNhbnMtc2VyaWY7bWF4LXdpZHRoOjMwMHB4JzsKICBwYW5lbC5pbm5lckhUTUwgPSAnPGRpdiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZDttYXJnaW4tYm90dG9tOjhweCI+57uE5Y23572R6K+V5Y235a+85Ye6IHY5PC9kaXY+PGxhYmVsIHN0eWxlPSJkaXNwbGF5OmJsb2NrO21hcmdpbi1ib3R0b206OHB4O2N1cnNvcjpwb2ludGVyIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGRhdGEtYW5zd2Vycz4g5YyF5ZCr562U5qGI5ZKM6Kej5p6QPC9sYWJlbD48ZGl2IHN0eWxlPSJkaXNwbGF5OmZsZXg7Z2FwOjZweCI+PGJ1dHRvbiBkYXRhLWFjdGlvbj0icGRmIj7miZPljbAgLyBQREY8L2J1dHRvbj48YnV0dG9uIGRhdGEtYWN0aW9uPSJkb2N4Ij7lr7zlh7ogV29yZDwvYnV0dG9uPjxidXR0b24gZGF0YS1hY3Rpb249ImNsb3NlIj7lhbPpl608L2J1dHRvbj48L2Rpdj48ZGl2IGRhdGEtc3RhdHVzIHN0eWxlPSJtYXJnaW4tdG9wOjhweDt3aGl0ZS1zcGFjZTpub3JtYWwiPuWLvumAieino+aekOWQjuS7heWPr+WvvOWHuiBQREbvvJtXb3JkIOWPquWvvOWHuumimOebruOAgjwvZGl2Pic7CiAgcGFuZWwucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uJykuZm9yRWFjaChiID0+IGIuc3R5bGUuY3NzVGV4dCA9ICdwYWRkaW5nOjZweCA5cHg7Ym9yZGVyOjFweCBzb2xpZCAjYWFhO2JvcmRlci1yYWRpdXM6NXB4O2JhY2tncm91bmQ6I2Y3ZjdmNztjdXJzb3I6cG9pbnRlcicpOwogIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocGFuZWwpOwogIGNvbnN0IHN0YXR1cyA9IHMgPT4geyBwYW5lbC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1zdGF0dXNdJykudGV4dENvbnRlbnQgPSBzOyB9OwogIGNvbnN0IHdhbnRzQW5zd2VycyA9ICgpID0+IHBhbmVsLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWFuc3dlcnNdJykuY2hlY2tlZDsKICBsZXQgd29ya2luZyA9IGZhbHNlOwogIGNvbnN0IHN5bmNCdXR0b25zID0gKCkgPT4gewogICAgZm9yIChjb25zdCBidXR0b24gb2YgcGFuZWwucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uJykpIHsKICAgICAgYnV0dG9uLmRpc2FibGVkID0gKHdvcmtpbmcgJiYgYnV0dG9uLmRhdGFzZXQuYWN0aW9uICE9PSAnY2xvc2UnKSB8fCAod2FudHNBbnN3ZXJzKCkgJiYgYnV0dG9uLmRhdGFzZXQuYWN0aW9uID09PSAnZG9jeCcpOwogICAgICBidXR0b24uc3R5bGUub3BhY2l0eSA9IGJ1dHRvbi5kaXNhYmxlZCA/ICcwLjQ1JyA6ICcxJzsKICAgICAgYnV0dG9uLnN0eWxlLmN1cnNvciA9IGJ1dHRvbi5kaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcic7CiAgICB9CiAgfTsKICBjb25zdCBidXN5ID0gdmFsdWUgPT4geyB3b3JraW5nID0gdmFsdWU7IHN5bmNCdXR0b25zKCk7IH07CiAgcGFuZWwucXVlcnlTZWxlY3RvcignW2RhdGEtYW5zd2Vyc10nKS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoKSA9PiB7CiAgICBzdGF0dXMod2FudHNBbnN3ZXJzKCkgPyAn5ZCr6Kej5p6Q5LuF5pSv5oyBIFBERu+8m1dvcmQg5bey56aB55So44CCJyA6ICdXb3JkIOWPquWvvOWHuumimOebruOAgicpOwogICAgc3luY0J1dHRvbnMoKTsKICB9KTsKCiAgZnVuY3Rpb24gcHJpbnRDdXJyZW50UGFnZVdpdGhBbnN3ZXJzKHF1ZXN0aW9ucykgewogICAgY29uc3QgdW5sb2FkZWQgPSBbLi4uc291cmNlLnF1ZXJ5U2VsZWN0b3JBbGwoJy5leGFtLWxpc3QgaW1nJyldLmZpbmQoaW1hZ2UgPT4gIWltYWdlLmNvbXBsZXRlIHx8ICFpbWFnZS5uYXR1cmFsV2lkdGgpOwogICAgaWYgKHVubG9hZGVkKSB0aHJvdyBuZXcgRXJyb3IoJ+ivleWNt+S4reeahOWFrOW8j+aIluWbvueJh+WwmuacquWKoOi9veWujOaIkO+8jOivt+eojeetiemhtemdouaYvuekuuWujOaVtOWQjumHjeivleOAgicpOwogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBxdWVzdGlvbnMubGVuZ3RoOyBpKyspIHsKICAgICAgY29uc3QgaW1hZ2UgPSBxdWVzdGlvbnNbaV0uYW5zd2VyOwogICAgICBpZiAoIWltYWdlPy5jb21wbGV0ZSB8fCBpbWFnZS5uYXR1cmFsV2lkdGggPCAxMDAwIHx8IGltYWdlLm5hdHVyYWxIZWlnaHQgPCA4MCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcihg56ysICR7aSArIDF9IOmimOino+aekOWwmuacquato+W4uOaYvuekuuOAguivt+WFiOWcqOe9kemhteaJk+W8gOKAnOaYvuekuuWFqOmDqOetlOahiOWSjOino+aekOKAneOAgmApOwogICAgICB9CiAgICB9CiAgICB3aW5kb3cuX19adWp1YW5QcmludENsZWFudXA/LigpOwogICAgY29uc3QgcGF0aCA9IFtdOwogICAgZm9yIChsZXQgbm9kZSA9IHNvdXJjZTsgbm9kZSAmJiBub2RlICE9PSBkb2N1bWVudC5ib2R5OyBub2RlID0gbm9kZS5wYXJlbnRFbGVtZW50KSB7CiAgICAgIHBhdGgucHVzaChub2RlKTsKICAgICAgbm9kZS5jbGFzc0xpc3QuYWRkKCd4a3ctbG9jYWwtcHJpbnQtcGF0aCcpOwogICAgfQogICAgc291cmNlLmNsYXNzTGlzdC5hZGQoJ3hrdy1sb2NhbC1wcmludC1zb3VyY2UnKTsKICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgneGt3LWxvY2FsLXByaW50aW5nJyk7CiAgICBjb25zdCBvcmlnaW5hbFRpdGxlID0gZG9jdW1lbnQudGl0bGU7CiAgICBkb2N1bWVudC50aXRsZSA9IG9yaWdpbmFsVGl0bGUucmVwbGFjZSgvLee7hOWNt+e9kVxzKiQvLCAnJykgKyAnLeWQq+etlOahiOino+aekCc7CiAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7CiAgICBzdHlsZS5pZCA9ICd4a3ctbG9jYWwtcHJpbnQtc3R5bGUnOwogICAgc3R5bGUudGV4dENvbnRlbnQgPSBgQHBhZ2V7c2l6ZTpBNCBwb3J0cmFpdDttYXJnaW46MTJtbX0KICAgICAgQG1lZGlhIHByaW50ewogICAgICAgIGJvZHkueGt3LWxvY2FsLXByaW50aW5ne21hcmdpbjowIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O3dpZHRoOmF1dG8haW1wb3J0YW50O21pbi13aWR0aDowIWltcG9ydGFudDtiYWNrZ3JvdW5kOiNmZmYhaW1wb3J0YW50O2NvbG9yOiMxMTEhaW1wb3J0YW50fQogICAgICAgIGJvZHkueGt3LWxvY2FsLXByaW50aW5nPjpub3QoLnhrdy1sb2NhbC1wcmludC1wYXRoKXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fQogICAgICAgIGJvZHkueGt3LWxvY2FsLXByaW50aW5nIC54a3ctbG9jYWwtcHJpbnQtcGF0aDpub3QoLnhrdy1sb2NhbC1wcmludC1zb3VyY2UpPjpub3QoLnhrdy1sb2NhbC1wcmludC1wYXRoKXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fQogICAgICAgIGJvZHkueGt3LWxvY2FsLXByaW50aW5nIC54a3ctbG9jYWwtcHJpbnQtcGF0aHtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDtwb3NpdGlvbjpzdGF0aWMhaW1wb3J0YW50O2Zsb2F0Om5vbmUhaW1wb3J0YW50O3RyYW5zZm9ybTpub25lIWltcG9ydGFudDt3aWR0aDoxMDAlIWltcG9ydGFudDttYXgtd2lkdGg6bm9uZSFpbXBvcnRhbnQ7bWluLXdpZHRoOjAhaW1wb3J0YW50O2hlaWdodDphdXRvIWltcG9ydGFudDttaW4taGVpZ2h0OjAhaW1wb3J0YW50O292ZXJmbG93OnZpc2libGUhaW1wb3J0YW50O21hcmdpbjowIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O2JhY2tncm91bmQ6I2ZmZiFpbXBvcnRhbnR9CiAgICAgICAgYm9keS54a3ctbG9jYWwtcHJpbnRpbmcgLnhrdy1sb2NhbC1wcmludC1zb3VyY2UgLmV4YW0taXRlbV9faW5mbywKICAgICAgICBib2R5Lnhrdy1sb2NhbC1wcmludGluZyAueGt3LWxvY2FsLXByaW50LXNvdXJjZSAucXVlcy1jdHJsLAogICAgICAgIGJvZHkueGt3LWxvY2FsLXByaW50aW5nIC54a3ctbG9jYWwtcHJpbnQtc291cmNlIC5idG4tYm94LAogICAgICAgIGJvZHkueGt3LWxvY2FsLXByaW50aW5nIC54a3ctbG9jYWwtcHJpbnQtc291cmNlIC5jdHJsLWJveCwKICAgICAgICBib2R5Lnhrdy1sb2NhbC1wcmludGluZyAueGt3LWxvY2FsLXByaW50LXNvdXJjZSAudG9wLW1zZywKICAgICAgICBib2R5Lnhrdy1sb2NhbC1wcmludGluZyAueGt3LWxvY2FsLXByaW50LXNvdXJjZSAubXNnLWJveCwKICAgICAgICBib2R5Lnhrdy1sb2NhbC1wcmludGluZyAueGt3LWxvY2FsLXByaW50LXNvdXJjZSAuaW5mby1saXN0LAogICAgICAgIGJvZHkueGt3LWxvY2FsLXByaW50aW5nIC54a3ctbG9jYWwtcHJpbnQtc291cmNlIC5hZGQtc2VjLXF1ZXMsCiAgICAgICAgYm9keS54a3ctbG9jYWwtcHJpbnRpbmcgLnhrdy1sb2NhbC1wcmludC1zb3VyY2UgLmV4YW0tYW5hbHl6ZSwKICAgICAgICBib2R5Lnhrdy1sb2NhbC1wcmludGluZyAueGt3LWxvY2FsLXByaW50LXNvdXJjZSBbY2xhc3MqPSJkb3dubG9hZCJdLAogICAgICAgIGJvZHkueGt3LWxvY2FsLXByaW50aW5nIC54a3ctbG9jYWwtcHJpbnQtc291cmNlIFtjbGFzcyo9ImNvbGxlY3QiXSwKICAgICAgICBib2R5Lnhrdy1sb2NhbC1wcmludGluZyAueGt3LWxvY2FsLXByaW50LXNvdXJjZSBbY2xhc3MqPSJzaGFyZSJde2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9CiAgICAgICAgYm9keS54a3ctbG9jYWwtcHJpbnRpbmcgLnhrdy1sb2NhbC1wcmludC1zb3VyY2UgaW1nLAogICAgICAgIGJvZHkueGt3LWxvY2FsLXByaW50aW5nIC54a3ctbG9jYWwtcHJpbnQtc291cmNlIHN2ZywKICAgICAgICBib2R5Lnhrdy1sb2NhbC1wcmludGluZyAueGt3LWxvY2FsLXByaW50LXNvdXJjZSBjYW52YXN7bWF4LXdpZHRoOjEwMCUhaW1wb3J0YW50O2hlaWdodDphdXRvIWltcG9ydGFudH0KICAgICAgICBib2R5Lnhrdy1sb2NhbC1wcmludGluZyAueGt3LWxvY2FsLXByaW50LXNvdXJjZSB0YWJsZXttYXgtd2lkdGg6MTAwJSFpbXBvcnRhbnR9CiAgICAgICAgYm9keS54a3ctbG9jYWwtcHJpbnRpbmcgLnhrdy1sb2NhbC1wcmludC1zb3VyY2UgYXtjb2xvcjppbmhlcml0IWltcG9ydGFudDt0ZXh0LWRlY29yYXRpb246bm9uZSFpbXBvcnRhbnR9CiAgICAgIH1gOwogICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7CiAgICBjb25zdCBjbGVhbnVwID0gKCkgPT4gewogICAgICBzdHlsZS5yZW1vdmUoKTsKICAgICAgZG9jdW1lbnQudGl0bGUgPSBvcmlnaW5hbFRpdGxlOwogICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ3hrdy1sb2NhbC1wcmludGluZycpOwogICAgICBzb3VyY2UuY2xhc3NMaXN0LnJlbW92ZSgneGt3LWxvY2FsLXByaW50LXNvdXJjZScpOwogICAgICBwYXRoLmZvckVhY2gobm9kZSA9PiBub2RlLmNsYXNzTGlzdC5yZW1vdmUoJ3hrdy1sb2NhbC1wcmludC1wYXRoJykpOwogICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWZ0ZXJwcmludCcsIGNsZWFudXApOwogICAgICBpZiAod2luZG93Ll9fWnVqdWFuUHJpbnRDbGVhbnVwID09PSBjbGVhbnVwKSBkZWxldGUgd2luZG93Ll9fWnVqdWFuUHJpbnRDbGVhbnVwOwogICAgfTsKICAgIHdpbmRvdy5fX1p1anVhblByaW50Q2xlYW51cCA9IGNsZWFudXA7CiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYWZ0ZXJwcmludCcsIGNsZWFudXApOwogICAgdHJ5IHsKICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuX19adWp1YW5BcHBQcmludEN1cnJlbnQgPT09ICdmdW5jdGlvbicpIHdpbmRvdy5fX1p1anVhbkFwcFByaW50Q3VycmVudCgpOwogICAgICBlbHNlIHdpbmRvdy5wcmludCgpOwogICAgfSBjYXRjaCAoZXJyb3IpIHsgY2xlYW51cCgpOyB0aHJvdyBlcnJvcjsgfQogIH0KCiAgYXN5bmMgZnVuY3Rpb24gcGRmKCkgewogICAgY29uc3QgaW5jbHVkZUFuc3dlcnMgPSB3YW50c0Fuc3dlcnMoKTsKICAgIGlmIChpbmNsdWRlQW5zd2VycykgewogICAgICBjb25zdCBxdWVzdGlvbnMgPSBjb2xsZWN0KHRydWUpOwogICAgICBzdGF0dXMoYOato+WcqOaJk+WNsCAke3F1ZXN0aW9ucy5sZW5ndGh9IOmBk+mimOWPiuino+aekOKApmApOwogICAgICBwcmludEN1cnJlbnRQYWdlV2l0aEFuc3dlcnMocXVlc3Rpb25zKTsKICAgICAgc3RhdHVzKCfmiZPljbDnqpflj6Plt7LmiZPlvIDvvIzor7fpgInmi6nigJzlj6blrZjkuLogUERG4oCd44CCJyk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGNvbnN0IG5hdGl2ZVByaW50ID0gdHlwZW9mIHdpbmRvdy5fX1p1anVhbkFwcFByaW50UGRmID09PSAnZnVuY3Rpb24nOwogICAgY29uc3QgcG9wdXAgPSBuYXRpdmVQcmludCA/IG51bGwgOiB3aW5kb3cub3BlbignJywgJ19ibGFuaycpOwogICAgaWYgKCFuYXRpdmVQcmludCAmJiAhcG9wdXApIHRocm93IG5ldyBFcnJvcign5rWP6KeI5Zmo5oum5oiq5LqG5omT5Y2w56qX5Y+j77yM6K+35YWB6K645q2k572R6aG15by55Ye656qX5Y+j5ZCO6YeN6K+V44CCJyk7CiAgICBidXN5KHRydWUpOwogICAgc3RhdHVzKCfmraPlnKjlh4blpIcgUERG4oCmJyk7CiAgICB0cnkgewogICAgY29uc3QgY29weSA9IHNvdXJjZS5jbG9uZU5vZGUodHJ1ZSk7CiAgICBjb3B5LnF1ZXJ5U2VsZWN0b3JBbGwoJ3NjcmlwdCxpZnJhbWUsLnF1ZXMtY3RybCwuYnRuLWJveCwuY3RybC1ib3gsLmV4YW0taXRlbV9faW5mbywudG9wLW1zZywubXNnLWJveCwuaW5mby1saXN0LHNlY3Rpb24uZXhhbS1hbmFseXplLC5hZGQtc2VjLXF1ZXMsW2NsYXNzKj0iZG93bmxvYWQiXSxbY2xhc3MqPSJjb2xsZWN0Il0sW2NsYXNzKj0ic2hhcmUiXScpLmZvckVhY2gobiA9PiBuLnJlbW92ZSgpKTsKICAgIGNvcHkucXVlcnlTZWxlY3RvckFsbCgnLmV4YW0taXRlbV9fb3B0ID4gLml0ZW0uYW5zd2VyLC5leGFtLWl0ZW1fX29wdCA+IC5pdGVtLm5vLWxvZ2luJykuZm9yRWFjaChuID0+IG4ucmVtb3ZlKCkpOwogICAgY29uc3Qgc3R5bGVzID0gWy4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpbmtbcmVsPSJzdHlsZXNoZWV0Il0sc3R5bGUnKV0ubWFwKG4gPT4gbi5vdXRlckhUTUwpLmpvaW4oJycpOwogICAgY29uc3QgdGl0bGUgPSBkb2N1bWVudC50aXRsZS5yZXBsYWNlKC9bPD5dL2csICcnKTsKICAgIGNvbnN0IGJhc2UgPSBsb2NhdGlvbi5ocmVmLnJlcGxhY2UoLyIvZywgJyZxdW90OycpOwogICAgY29uc3QgaHRtbCA9IGA8IWRvY3R5cGUgaHRtbD48aHRtbCBsYW5nPSJ6aC1DTiI+PGhlYWQ+PG1ldGEgY2hhcnNldD0idXRmLTgiPjxiYXNlIGhyZWY9IiR7YmFzZX0iPjx0aXRsZT4ke3RpdGxlfTwvdGl0bGU+JHtzdHlsZXN9PHN0eWxlPkBwYWdle21hcmdpbjoxMm1tfWJvZHl7YmFja2dyb3VuZDojZmZmIWltcG9ydGFudDtwYWRkaW5nOjE0bW0haW1wb3J0YW50O2NvbG9yOiMxMTEhaW1wb3J0YW50fS5wcmludC10b29sc3twb3NpdGlvbjpmaXhlZDtyaWdodDoxOHB4O3RvcDoxOHB4O3otaW5kZXg6OTk5OX0ucHJpbnQtdG9vbHMgYnV0dG9ue3BhZGRpbmc6MTBweCAxNHB4O2JhY2tncm91bmQ6IzI1NjNlYjtjb2xvcjojZmZmO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6NnB4O2ZvbnQtc2l6ZToxNHB4O2N1cnNvcjpwb2ludGVyfUBtZWRpYSBwcmludHsucHJpbnQtdG9vbHN7ZGlzcGxheTpub25lIWltcG9ydGFudH1he2NvbG9yOmluaGVyaXQhaW1wb3J0YW50O3RleHQtZGVjb3JhdGlvbjpub25lIWltcG9ydGFudH19PC9zdHlsZT48L2hlYWQ+PGJvZHk+PGRpdiBjbGFzcz0icHJpbnQtdG9vbHMiPjxidXR0b24gb25jbGljaz0id2luZG93LnByaW50KCkiPuaJk+WNsCAvIOWPpuWtmOS4uiBQREY8L2J1dHRvbj48L2Rpdj48bWFpbj4ke2NvcHkuaW5uZXJIVE1MfTwvbWFpbj48L2JvZHk+PC9odG1sPmA7CiAgICBpZiAobmF0aXZlUHJpbnQpIHsgd2luZG93Ll9fWnVqdWFuQXBwUHJpbnRQZGYoaHRtbCk7IHN0YXR1cygnUERGIOaJk+WNsOmhtemdouW3suaJk+W8gOOAgicpOyByZXR1cm47IH0KICAgIHBvcHVwLmRvY3VtZW50Lm9wZW4oKTsKICAgIHBvcHVwLmRvY3VtZW50LndyaXRlKGh0bWwpOwogICAgcG9wdXAuZG9jdW1lbnQuY2xvc2UoKTsKICAgIHN0YXR1cygnUERGIOaJk+WNsOmhtemdouW3suaJk+W8gOOAgicpOwogICAgfSBjYXRjaCAoZXJyb3IpIHsgaWYgKHBvcHVwICYmICFwb3B1cC5jbG9zZWQpIHBvcHVwLmNsb3NlKCk7IHRocm93IGVycm9yOyB9CiAgICBmaW5hbGx5IHsgYnVzeShmYWxzZSk7IH0KICB9CgogIGNvbnN0IGVzYyA9IHMgPT4gU3RyaW5nKHMpLnJlcGxhY2UoL1smPD4iJ10vZywgYyA9PiAoeycmJzonJmFtcDsnLCc8JzonJmx0OycsJz4nOicmZ3Q7JywnIic6JyZxdW90OycsIiciOicmYXBvczsnfVtjXSkpOwogIGNvbnN0IHU4ID0gcyA9PiBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUocyk7CiAgY29uc3QgY3JjVGFibGUgPSBBcnJheS5mcm9tKHtsZW5ndGg6MjU2fSwgKF8saSkgPT4geyBmb3IobGV0IGo9MDtqPDg7aisrKSBpPShpJjEpPygweGVkYjg4MzIwXihpPj4+MSkpOihpPj4+MSk7IHJldHVybiBpPj4+MDsgfSk7CiAgZnVuY3Rpb24gY3JjMzIoYnl0ZXMpIHsgbGV0IGM9MHhmZmZmZmZmZjsgZm9yKGNvbnN0IHggb2YgYnl0ZXMpIGM9Y3JjVGFibGVbKGNeeCkmMjU1XV4oYz4+PjgpOyByZXR1cm4gKGNeMHhmZmZmZmZmZik+Pj4wOyB9CiAgZnVuY3Rpb24gemlwKGZpbGVzKSB7CiAgICBjb25zdCBjaHVua3M9W10sIGRpcmVjdG9yeT1bXTsgbGV0IG9mZnNldD0wOwogICAgY29uc3QgbGUxNj0oZCxvLHYpPT5kLnNldFVpbnQxNihvLHYsdHJ1ZSksIGxlMzI9KGQsbyx2KT0+ZC5zZXRVaW50MzIobyx2LHRydWUpOwogICAgZm9yKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHsKICAgICAgY29uc3QgbmFtZT11OChmaWxlLm5hbWUpLCBkYXRhPWZpbGUuZGF0YSwgY3JjPWNyYzMyKGRhdGEpOwogICAgICBjb25zdCBoPW5ldyBVaW50OEFycmF5KDMwK25hbWUubGVuZ3RoKSwgZD1uZXcgRGF0YVZpZXcoaC5idWZmZXIpOwogICAgICBsZTMyKGQsMCwweDA0MDM0YjUwKTtsZTE2KGQsNCwyMCk7bGUxNihkLDYsMHgwODAwKTtsZTE2KGQsOCwwKTtsZTE2KGQsMTAsMCk7bGUxNihkLDEyLDApO2xlMzIoZCwxNCxjcmMpO2xlMzIoZCwxOCxkYXRhLmxlbmd0aCk7bGUzMihkLDIyLGRhdGEubGVuZ3RoKTtsZTE2KGQsMjYsbmFtZS5sZW5ndGgpO2xlMTYoZCwyOCwwKTtoLnNldChuYW1lLDMwKTsKICAgICAgY2h1bmtzLnB1c2goaCxkYXRhKTsKICAgICAgY29uc3QgYz1uZXcgVWludDhBcnJheSg0NituYW1lLmxlbmd0aCksdj1uZXcgRGF0YVZpZXcoYy5idWZmZXIpOwogICAgICBsZTMyKHYsMCwweDAyMDE0YjUwKTtsZTE2KHYsNCwyMCk7bGUxNih2LDYsMjApO2xlMTYodiw4LDB4MDgwMCk7bGUxNih2LDEwLDApO2xlMTYodiwxMiwwKTtsZTE2KHYsMTQsMCk7bGUzMih2LDE2LGNyYyk7bGUzMih2LDIwLGRhdGEubGVuZ3RoKTtsZTMyKHYsMjQsZGF0YS5sZW5ndGgpO2xlMTYodiwyOCxuYW1lLmxlbmd0aCk7bGUxNih2LDMwLDApO2xlMTYodiwzMiwwKTtsZTE2KHYsMzQsMCk7bGUxNih2LDM2LDApO2xlMzIodiwzOCwwKTtsZTMyKHYsNDIsb2Zmc2V0KTtjLnNldChuYW1lLDQ2KTtkaXJlY3RvcnkucHVzaChjKTsKICAgICAgb2Zmc2V0Kz1oLmxlbmd0aCtkYXRhLmxlbmd0aDsKICAgIH0KICAgIGNvbnN0IGRpclNpemU9ZGlyZWN0b3J5LnJlZHVjZSgobixjKT0+bitjLmxlbmd0aCwwKSwgZW5kPW5ldyBVaW50OEFycmF5KDIyKSxlPW5ldyBEYXRhVmlldyhlbmQuYnVmZmVyKTsKICAgIGxlMzIoZSwwLDB4MDYwNTRiNTApO2xlMTYoZSw0LDApO2xlMTYoZSw2LDApO2xlMTYoZSw4LGZpbGVzLmxlbmd0aCk7bGUxNihlLDEwLGZpbGVzLmxlbmd0aCk7bGUzMihlLDEyLGRpclNpemUpO2xlMzIoZSwxNixvZmZzZXQpO2xlMTYoZSwyMCwwKTsKICAgIHJldHVybiBuZXcgQmxvYihbLi4uY2h1bmtzLC4uLmRpcmVjdG9yeSxlbmRdLHt0eXBlOidhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCd9KTsKICB9CiAgZnVuY3Rpb24gcGFyYSh0ZXh0LHNpemU9MjIsYm9sZD1mYWxzZSxhbGlnbj0nJykgeyByZXR1cm4gYDx3OnA+PHc6cFByPjx3OnNwYWNpbmcgdzpiZWZvcmU9IjgwIiB3OmFmdGVyPSI4MCIvPiR7YWxpZ24/YDx3OmpjIHc6dmFsPSIke2FsaWdufSIvPmA6Jyd9PC93OnBQcj48dzpyPjx3OnJQcj48dzpyRm9udHMgdzphc2NpaT0iTWljcm9zb2Z0IFlhSGVpIiB3OmVhc3RBc2lhPSJNaWNyb3NvZnQgWWFIZWkiLz48dzpzeiB3OnZhbD0iJHtzaXplfSIvPiR7Ym9sZD8nPHc6Yi8+JzonJ308L3c6clByPjx3OnQgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+JHtlc2ModGV4dCl9PC93OnQ+PC93OnI+PC93OnA+YDsgfQogIGZ1bmN0aW9uIGltYWdlUGFyYShpZCxjeCxjeSxuYW1lKSB7IHJldHVybiBgPHc6cD48dzpwUHI+PHc6c3BhY2luZyB3OmFmdGVyPSIxMjAiLz48L3c6cFByPjx3OnI+PHc6ZHJhd2luZz48d3A6aW5saW5lIGRpc3RUPSIwIiBkaXN0Qj0iMCIgZGlzdEw9IjAiIGRpc3RSPSIwIj48d3A6ZXh0ZW50IGN4PSIke2N4fSIgY3k9IiR7Y3l9Ii8+PHdwOmRvY1ByIGlkPSIke2lkfSIgbmFtZT0iJHtlc2MobmFtZSl9Ii8+PGE6Z3JhcGhpYyB4bWxuczphPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvZHJhd2luZ21sLzIwMDYvbWFpbiI+PGE6Z3JhcGhpY0RhdGEgdXJpPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvZHJhd2luZ21sLzIwMDYvcGljdHVyZSI+PHBpYzpwaWMgeG1sbnM6cGljPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvZHJhd2luZ21sLzIwMDYvcGljdHVyZSI+PHBpYzpudlBpY1ByPjxwaWM6Y052UHIgaWQ9IiR7aWR9IiBuYW1lPSIke2VzYyhuYW1lKX0ucG5nIi8+PHBpYzpjTnZQaWNQci8+PC9waWM6bnZQaWNQcj48cGljOmJsaXBGaWxsPjxhOmJsaXAgcjplbWJlZD0icklkJHtpZH0iLz48YTpzdHJldGNoPjxhOmZpbGxSZWN0Lz48L2E6c3RyZXRjaD48L3BpYzpibGlwRmlsbD48cGljOnNwUHI+PGE6eGZybT48YTpvZmYgeD0iMCIgeT0iMCIvPjxhOmV4dCBjeD0iJHtjeH0iIGN5PSIke2N5fSIvPjwvYTp4ZnJtPjxhOnByc3RHZW9tIHByc3Q9InJlY3QiPjxhOmF2THN0Lz48L2E6cHJzdEdlb20+PC9waWM6c3BQcj48L3BpYzpwaWM+PC9hOmdyYXBoaWNEYXRhPjwvYTpncmFwaGljPjwvd3A6aW5saW5lPjwvdzpkcmF3aW5nPjwvdzpyPjwvdzpwPmA7IH0KICBmdW5jdGlvbiByaWNoUGFyYShub2RlcywgYmxvY2spIHsKICAgIGNvbnN0IHJ1bnM9W107CiAgICBjb25zdCB3YWxrPShub2RlLCBmb3JtYXQ9e30pPT57CiAgICAgIGlmKG5vZGUubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSl7CiAgICAgICAgY29uc3QgdmFsdWU9KG5vZGUubm9kZVZhbHVlfHwnJykucmVwbGFjZSgvW1xyXG5cdF0rL2csJyAnKS5yZXBsYWNlKC8gezIsfS9nLCcgJyk7CiAgICAgICAgaWYoIXZhbHVlKSByZXR1cm47CiAgICAgICAgY29uc3QgZm9udD1lc2MoZm9ybWF0LmZvbnR8fCdNaWNyb3NvZnQgWWFIZWknKTsKICAgICAgICBjb25zdCBwcm9wcz1gPHc6ckZvbnRzIHc6YXNjaWk9IiR7Zm9udH0iIHc6ZWFzdEFzaWE9IiR7Zm9udH0iLz48dzpzeiB3OnZhbD0iMjIiLz4ke2Zvcm1hdC5ib2xkPyc8dzpiLz4nOicnfSR7Zm9ybWF0Lml0YWxpYz8nPHc6aS8+JzonJ30ke2Zvcm1hdC51bmRlcmxpbmU/YDx3OnUgdzp2YWw9IiR7Zm9ybWF0LnVuZGVybGluZX0iLz5gOicnfSR7Zm9ybWF0LnZlcnQ/YDx3OnZlcnRBbGlnbiB3OnZhbD0iJHtmb3JtYXQudmVydH0iLz5gOicnfWA7CiAgICAgICAgcnVucy5wdXNoKGA8dzpyPjx3OnJQcj4ke3Byb3BzfTwvdzpyUHI+PHc6dCB4bWw6c3BhY2U9InByZXNlcnZlIj4ke2VzYyh2YWx1ZSl9PC93OnQ+PC93OnI+YCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmKG5vZGUubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERSkgcmV0dXJuOwogICAgICBjb25zdCB0YWc9bm9kZS50YWdOYW1lLnRvTG93ZXJDYXNlKCk7CiAgICAgIGlmKHRhZz09PSdicicpe3J1bnMucHVzaCgnPHc6cj48dzpici8+PC93OnI+Jyk7cmV0dXJuO30KICAgICAgY29uc3Qgc3R5bGU9bm9kZS5zdHlsZXx8e307CiAgICAgIGNvbnN0IG5leHQ9ey4uLmZvcm1hdH07CiAgICAgIGlmKHRhZz09PSdiJ3x8dGFnPT09J3N0cm9uZyd8fHN0eWxlLmZvbnRXZWlnaHQ9PT0nYm9sZCd8fE51bWJlcihzdHlsZS5mb250V2VpZ2h0KT49NjAwKSBuZXh0LmJvbGQ9dHJ1ZTsKICAgICAgaWYodGFnPT09J2knfHx0YWc9PT0nZW0nfHxzdHlsZS5mb250U3R5bGU9PT0naXRhbGljJykgbmV4dC5pdGFsaWM9dHJ1ZTsKICAgICAgaWYodGFnPT09J3UnfHxTdHJpbmcoc3R5bGUudGV4dERlY29yYXRpb258fCcnKS5pbmNsdWRlcygndW5kZXJsaW5lJykpIG5leHQudW5kZXJsaW5lPSdzaW5nbGUnOwogICAgICBpZih0YWc9PT0nd2F2ZScpIG5leHQudW5kZXJsaW5lPSd3YXZlJzsKICAgICAgaWYodGFnPT09J2RvdCcpIG5leHQudW5kZXJsaW5lPSdkb3R0ZWQnOwogICAgICBpZih0YWc9PT0nc3VwJykgbmV4dC52ZXJ0PSdzdXBlcnNjcmlwdCc7CiAgICAgIGlmKHRhZz09PSdzdWInKSBuZXh0LnZlcnQ9J3N1YnNjcmlwdCc7CiAgICAgIGlmKHN0eWxlLmZvbnRGYW1pbHkpIG5leHQuZm9udD1zdHlsZS5mb250RmFtaWx5LnNwbGl0KCcsJylbMF0ucmVwbGFjZSgvWyInXS9nLCcnKS50cmltKCk7CiAgICAgIGZvcihjb25zdCBjaGlsZCBvZiBub2RlLmNoaWxkTm9kZXMpIHdhbGsoY2hpbGQsbmV4dCk7CiAgICB9OwogICAgZm9yKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHdhbGsobm9kZSk7CiAgICBpZighcnVucy5sZW5ndGh8fCFub2Rlcy5tYXAobj0+bi50ZXh0Q29udGVudHx8JycpLmpvaW4oJycpLnRyaW0oKSkgcmV0dXJuICcnOwogICAgY29uc3QgYWxpZ249YmxvY2s/LnN0eWxlPy50ZXh0QWxpZ247CiAgICBjb25zdCBpbmRlbnQ9YmxvY2s/LnN0eWxlPy50ZXh0SW5kZW50OwogICAgY29uc3QgcFByPWA8dzpzcGFjaW5nIHc6YmVmb3JlPSIwIiB3OmFmdGVyPSI3MCIgdzpsaW5lPSIzMDAiIHc6bGluZVJ1bGU9ImF1dG8iLz4ke2FsaWduPT09J2NlbnRlcid8fGFsaWduPT09J3JpZ2h0Jz9gPHc6amMgdzp2YWw9IiR7YWxpZ259Ii8+YDonJ30ke2luZGVudCYmaW5kZW50IT09JzBweCc/Jzx3OmluZCB3OmZpcnN0TGluZT0iNDIwIi8+JzonJ31gOwogICAgcmV0dXJuIGA8dzpwPjx3OnBQcj4ke3BQcn08L3c6cFByPiR7cnVucy5qb2luKCcnKX08L3c6cD5gOwogIH0KICBmdW5jdGlvbiBlZGl0YWJsZUNvbnRlbnQobm9kZSkgewogICAgY29uc3QgcGFyYWdyYXBocz1bXTsKICAgIGNvbnN0IGVtaXRDb250YWluZXI9Y29udGFpbmVyPT57CiAgICAgIGxldCBwZW5kaW5nPVtdOwogICAgICBjb25zdCBmbHVzaD0oKT0+e2NvbnN0IHA9cmljaFBhcmEocGVuZGluZyxjb250YWluZXIpO2lmKHApcGFyYWdyYXBocy5wdXNoKHApO3BlbmRpbmc9W107fTsKICAgICAgZm9yKGNvbnN0IGNoaWxkIG9mIGNvbnRhaW5lci5jaGlsZE5vZGVzKXsKICAgICAgICBpZihjaGlsZC5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFKXsKICAgICAgICAgIGNvbnN0IHRhZz1jaGlsZC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgICBpZih0YWc9PT0nYnInKXtmbHVzaCgpO2NvbnRpbnVlO30KICAgICAgICAgIGlmKHRhZz09PSdwJ3x8dGFnPT09J2xpJ3x8dGFnPT09J2Jsb2NrcXVvdGUnKXsKICAgICAgICAgICAgZmx1c2goKTtjb25zdCBwPXJpY2hQYXJhKFsuLi5jaGlsZC5jaGlsZE5vZGVzXSxjaGlsZCk7aWYocClwYXJhZ3JhcGhzLnB1c2gocCk7Y29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZih0YWc9PT0ndGFibGUnKXsKICAgICAgICAgICAgZmx1c2goKTsKICAgICAgICAgICAgZm9yKGNvbnN0IHJvdyBvZiBjaGlsZC5yb3dzKSBmb3IoY29uc3QgY2VsbCBvZiByb3cuY2VsbHMpewogICAgICAgICAgICAgIGNvbnN0IHA9cmljaFBhcmEoWy4uLmNlbGwuY2hpbGROb2Rlc10sY2VsbCk7aWYocClwYXJhZ3JhcGhzLnB1c2gocCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZih0YWc9PT0nZGl2JyYmY2hpbGQucXVlcnlTZWxlY3RvcigncCx0YWJsZSxkaXYsbGknKSl7Zmx1c2goKTtlbWl0Q29udGFpbmVyKGNoaWxkKTtjb250aW51ZTt9CiAgICAgICAgfQogICAgICAgIHBlbmRpbmcucHVzaChjaGlsZCk7CiAgICAgIH0KICAgICAgZmx1c2goKTsKICAgIH07CiAgICBlbWl0Q29udGFpbmVyKG5vZGUpOwogICAgcmV0dXJuIHBhcmFncmFwaHM7CiAgfQogIGZ1bmN0aW9uIGNhbkVkaXRBc1Byb3NlKG5vZGUpIHsKICAgIGlmKG5vZGUucXVlcnlTZWxlY3RvckFsbCgncCcpLmxlbmd0aDwyKSByZXR1cm4gZmFsc2U7CiAgICByZXR1cm4gIW5vZGUucXVlcnlTZWxlY3RvcignaW1nLHN2ZyxjYW52YXMsbWF0aCxtangtY29udGFpbmVyLC5NYXRoSmF4LC5rYXRleCxydWJ5LGlmcmFtZSxvYmplY3QsZW1iZWQsY29kZSx2YXIsW2NsYXNzKj0iZm9ybXVsYSIgaV0sW2NsYXNzKj0iZXF1YXRpb24iIGldLFtjbGFzcyo9Im1hdGgiIGldLFtjbGFzcyo9ImNoZW0iIGldLFtjbGFzcyo9Im1vbGVjdWxlIiBpXSxbc3R5bGUqPSJiYWNrZ3JvdW5kLWltYWdlIiBpXSxbc3R5bGUqPSJwb3NpdGlvbjphYnNvbHV0ZSIgaV0sW3N0eWxlKj0icG9zaXRpb246IGFic29sdXRlIiBpXSxbc3R5bGUqPSJ2ZXJ0aWNhbC1hbGlnbiIgaV0nKTsKICB9CiAgZnVuY3Rpb24gZGF0YUJ5dGVzKHVybCkge2NvbnN0IHM9YXRvYih1cmwuc3BsaXQoJywnKVsxXSksYT1uZXcgVWludDhBcnJheShzLmxlbmd0aCk7Zm9yKGxldCBpPTA7aTxzLmxlbmd0aDtpKyspYVtpXT1zLmNoYXJDb2RlQXQoaSk7cmV0dXJuIGE7fQogIGZ1bmN0aW9uIHRvRGF0YVVSTChibG9iKSB7cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLHJlamVjdCk9Pntjb25zdCByPW5ldyBGaWxlUmVhZGVyKCk7ci5vbmxvYWQ9KCk9PnJlc29sdmUoci5yZXN1bHQpO3Iub25lcnJvcj0oKT0+cmVqZWN0KHIuZXJyb3IpO3IucmVhZEFzRGF0YVVSTChibG9iKTt9KTt9CiAgZnVuY3Rpb24gaW1hZ2VEYXRhVVJMKHNyYyxjYWNoZSkgewogICAgY29uc3QgdXJsPW5ldyBVUkwoc3JjLGxvY2F0aW9uLmhyZWYpLmhyZWY7CiAgICBpZighY2FjaGUuaGFzKHVybCkpIGNhY2hlLnNldCh1cmwsKGFzeW5jKCk9PnsKICAgICAgbGV0IHJlc3BvbnNlOwogICAgICB0cnkgeyByZXNwb25zZT1hd2FpdCBmZXRjaCh1cmwse21vZGU6J2NvcnMnLGNyZWRlbnRpYWxzOidvbWl0JyxjYWNoZTonbm8tc3RvcmUnfSk7IH0KICAgICAgY2F0Y2goZXJyb3IpIHsgdGhyb3cgbmV3IEVycm9yKGDlm77niYfor7vlj5blpLHotKXvvIgke25ldyBVUkwodXJsKS5wYXRobmFtZX3vvInvvJoke2Vycm9yLm1lc3NhZ2V9YCk7IH0KICAgICAgaWYoIXJlc3BvbnNlLm9rKSB0aHJvdyBuZXcgRXJyb3IoYOWbvueJh+ivu+WPluWksei0pe+8iCR7cmVzcG9uc2Uuc3RhdHVzfe+8ie+8miR7bmV3IFVSTCh1cmwpLnBhdGhuYW1lfWApOwogICAgICByZXR1cm4gdG9EYXRhVVJMKGF3YWl0IHJlc3BvbnNlLmJsb2IoKSk7CiAgICB9KSgpKTsKICAgIHJldHVybiBjYWNoZS5nZXQodXJsKTsKICB9CiAgYXN5bmMgZnVuY3Rpb24gaW5saW5lSW1hZ2VzKG5vZGUsY2FjaGUpIHsKICAgIGNvbnN0IGltYWdlcz1bLi4ubm9kZS5xdWVyeVNlbGVjdG9yQWxsKCdpbWcnKV07CiAgICBmb3IoY29uc3QgaW1nIG9mIGltYWdlcykgewogICAgICBpbWcuc3JjPWF3YWl0IGltYWdlRGF0YVVSTChpbWcuZ2V0QXR0cmlidXRlKCdzcmMnKXx8aW1nLmN1cnJlbnRTcmMsY2FjaGUpOwogICAgfQogICAgYXdhaXQgUHJvbWlzZS5hbGwoaW1hZ2VzLm1hcChpbWc9PmltZy5kZWNvZGUoKS5jYXRjaCgoKT0+e3Rocm93IG5ldyBFcnJvcign5Zu+54mH6Kej56CB5aSx6LSl44CCJyl9KSkpOwogIH0KICBmdW5jdGlvbiBjb2xsZWN0KGluY2x1ZGVBbnN3ZXJzPWZhbHNlKSB7CiAgICBjb25zdCBvdXQ9W107bGV0IHNlY3Rpb249Jyc7CiAgICBjb25zdCBhZGRRdWVzdGlvbj0ocSxjb250ZW50LGFuc3dlcik9PnsKICAgICAgaWYoIWNvbnRlbnQpIHJldHVybjsKICAgICAgaWYoaW5jbHVkZUFuc3dlcnMgJiYgKCFhbnN3ZXIgfHwgIWFuc3dlci5nZXRBdHRyaWJ1dGUoJ3NyYycpKSkgdGhyb3cgbmV3IEVycm9yKGDnrKwgJHtvdXQubGVuZ3RoKzF9IOmimOayoeacieWPr+WvvOWHuueahOetlOahiOino+aekOOAguivt+WFiOeZu+W9le+8jOW5tuaJk+W8gOe9keermeeahOKAnOaYvuekuuWFqOmDqOetlOahiOWSjOino+aekOKAneOAgmApOwogICAgICBvdXQucHVzaCh7c2VjdGlvbixpZDpxLmdldEF0dHJpYnV0ZSgncXVlc3Rpb25pZCcpLGNvbnRlbnQsYW5zd2VyfSk7CiAgICB9OwogICAgY29uc3QgZGV0YWlsR3JvdXBzPVsuLi5zb3VyY2UucXVlcnlTZWxlY3RvckFsbCgnLmV4YW0tbGlzdCA+IC5zZWMtaXRlbScpXTsKICAgIGlmKGRldGFpbEdyb3Vwcy5sZW5ndGgpIHsKICAgICAgZm9yKGNvbnN0IGdyb3VwIG9mIGRldGFpbEdyb3VwcykgZm9yKGNvbnN0IGNoaWxkIG9mIGdyb3VwLmNoaWxkcmVuKSB7CiAgICAgICAgaWYoY2hpbGQubWF0Y2hlcygnLnNlYy10aXRsZScpKSBzZWN0aW9uPWNoaWxkLnF1ZXJ5U2VsZWN0b3IoJ3NwYW4nKT8udGV4dENvbnRlbnQudHJpbSgpfHxjaGlsZC50ZXh0Q29udGVudC50cmltKCk7CiAgICAgICAgaWYoY2hpbGQubWF0Y2hlcygnLnNlYy1saXN0JykpIGZvcihjb25zdCBxIG9mIGNoaWxkLnF1ZXJ5U2VsZWN0b3JBbGwoJzpzY29wZSA+IC50ay1xdWVzdC1pdGVtJykpIHsKICAgICAgICAgIGFkZFF1ZXN0aW9uKHEscS5xdWVyeVNlbGVjdG9yKCc6c2NvcGUgPiAucXVlc2RpdiA+IC5leGFtLWl0ZW1fX2NudCcpLHEucXVlcnlTZWxlY3RvcignOnNjb3BlID4gLnF1ZXNkaXYgPiAuZXhhbS1pdGVtX19vcHQgPiAuaXRlbS5hbnN3ZXIgPiBpbWcnKSk7CiAgICAgICAgfQogICAgICB9CiAgICB9IGVsc2UgaWYoc291cmNlLm1hdGNoZXMoJ2FydGljbGUucGFwZXItY250JykpIHsKICAgICAgZm9yKGNvbnN0IGdyb3VwIG9mIHNvdXJjZS5xdWVyeVNlbGVjdG9yQWxsKCcucGFwZXItYm9keSAucXVlcy10eXBlJykpIHsKICAgICAgICBzZWN0aW9uPWdyb3VwLnF1ZXJ5U2VsZWN0b3IoJzpzY29wZSA+IC5xdWVzdHlwZS1oZWFkIC5xdWVzdHlwZXRpdGxlJyk/LnRleHRDb250ZW50LnRyaW0oKXx8Jyc7CiAgICAgICAgZm9yKGNvbnN0IHEgb2YgZ3JvdXAucXVlcnlTZWxlY3RvckFsbCgnOnNjb3BlID4gLnF1ZXN0eXBlLWJvZHkgPiAucXVlcy1pdGVtJykpIHsKICAgICAgICAgIGFkZFF1ZXN0aW9uKHEscS5xdWVyeVNlbGVjdG9yKCc6c2NvcGUgPiAucXVlc3Jvb3QgPiAucXVlc2RpdiA+IC5leGFtLWl0ZW1fX2NudCcpLHEucXVlcnlTZWxlY3RvcignOnNjb3BlID4gLnF1ZXNyb290ID4gLnF1ZXNkaXYgPiAuZXhhbS1pdGVtX19vcHQgPiAuaXRlbS5hbnN3ZXIgPiBpbWcnKSk7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICBpZighb3V0Lmxlbmd0aCkgdGhyb3cgbmV3IEVycm9yKCflvZPliY3pobXpnaLmsqHmnInmib7liLDlj6/lr7zlh7rnmoTpopjnm67jgILor7fmiZPlvIDmnInpopjnm67nmoTor5Xljbfor6bmg4XpobXmiJbnu4TljbfkuK3lv4PjgIInKTsKICAgIHJldHVybiBvdXQ7CiAgfQogIGFzeW5jIGZ1bmN0aW9uIGRvY3goKSB7CiAgICBpZih3YW50c0Fuc3dlcnMoKSkgdGhyb3cgbmV3IEVycm9yKCflkKvop6PmnpDml7YgV29yZCDlr7zlh7rkuI3lj6/nlKjvvIzor7fmlLnnlKggUERG44CCJyk7CiAgICBpZih0eXBlb2YgaHRtbDJjYW52YXMhPT0nZnVuY3Rpb24nKSB0aHJvdyBuZXcgRXJyb3IoJ+acrOWcsOa4suafk+e7hOS7tuacqui9veWFpe+8jOivt+mHjeaWsOWkjeWItuWujOaVtOS5puetvuiEmuacrOOAgicpOwogICAgY29uc3QgcXVlc3Rpb25zPWNvbGxlY3QoZmFsc2UpOwogICAgY29uc3QgcGFwZXJUaXRsZT1zb3VyY2UucXVlcnlTZWxlY3RvcignI3B1aV9tYWludGl0bGUnKT8udGV4dENvbnRlbnQudHJpbSgpfHxkb2N1bWVudC50aXRsZS5yZXBsYWNlKC8t57uE5Y23572RXHMqJC8sJycpOwogICAgYnVzeSh0cnVlKTtzdGF0dXMoYOWHhuWkh+WvvOWHuiAke3F1ZXN0aW9ucy5sZW5ndGh9IOmBk+mimOKApmApOwogICAgY29uc3QgaG9zdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIGhvc3QuY2xhc3NOYW1lPSdleGFtLWNudCc7CiAgICBob3N0LnN0eWxlLmNzc1RleHQ9J3Bvc2l0aW9uOmZpeGVkO2xlZnQ6MDt0b3A6MDt6LWluZGV4Oi0yMTQ3NDgzNjQ3O3BvaW50ZXItZXZlbnRzOm5vbmU7d2lkdGg6ODIwcHg7YmFja2dyb3VuZDojZmZmO3BhZGRpbmc6MCc7CiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGhvc3QpOwogICAgY29uc3QgY2FjaGU9bmV3IE1hcCgpLCBmaWxlcz1bXSwgbWVkaWE9W10sIGJvZHk9W107CiAgICBjb25zdCBtYXhXPTYuOCo5MTQ0MDAsbWF4SD05LjQqOTE0NDAwOwogICAgY29uc3QgYWRkSW1hZ2U9KG5hbWUsZGF0YSx3aWR0aCxoZWlnaHQsbGFiZWwpPT57CiAgICAgIGNvbnN0IGlkPW1lZGlhLmxlbmd0aCsxLHJhdGlvPU1hdGgubWluKG1heFcvd2lkdGgsbWF4SC9oZWlnaHQpOwogICAgICBtZWRpYS5wdXNoKHtpZCxuYW1lfSk7CiAgICAgIGZpbGVzLnB1c2goe25hbWU6YHdvcmQvbWVkaWEvJHtuYW1lfWAsZGF0YX0pOwogICAgICBib2R5LnB1c2goaW1hZ2VQYXJhKGlkLE1hdGgucm91bmQod2lkdGgqcmF0aW8pLE1hdGgucm91bmQoaGVpZ2h0KnJhdGlvKSxsYWJlbCkpOwogICAgfTsKICAgIGNvbnN0IGFkZENhbnZhcz0oY2FudmFzLG51bWJlcik9PnsKICAgICAgY29uc3QgbWF4U2xpY2U9TWF0aC5mbG9vcihjYW52YXMud2lkdGgqbWF4SC9tYXhXKTsKICAgICAgY29uc3QgY3R4PWNhbnZhcy5nZXRDb250ZXh0KCcyZCcse3dpbGxSZWFkRnJlcXVlbnRseTp0cnVlfSk7CiAgICAgIGxldCB0b3A9MCxwYXJ0PTE7CiAgICAgIHdoaWxlKHRvcDxjYW52YXMuaGVpZ2h0KXsKICAgICAgICBsZXQgYm90dG9tPU1hdGgubWluKHRvcCttYXhTbGljZSxjYW52YXMuaGVpZ2h0KTsKICAgICAgICBpZihib3R0b208Y2FudmFzLmhlaWdodCl7CiAgICAgICAgICBjb25zdCBmcm9tPU1hdGgubWF4KHRvcCtNYXRoLmZsb29yKG1heFNsaWNlKjAuNjUpLGJvdHRvbS0xMzApOwogICAgICAgICAgY29uc3QgdG89TWF0aC5taW4oY2FudmFzLmhlaWdodC0xLGJvdHRvbSsxMzApOwogICAgICAgICAgY29uc3QgYmFuZD1jdHguZ2V0SW1hZ2VEYXRhKDAsZnJvbSxjYW52YXMud2lkdGgsdG8tZnJvbSsxKS5kYXRhOwogICAgICAgICAgbGV0IGJlc3Q9Ym90dG9tLGxlYXN0PUluZmluaXR5OwogICAgICAgICAgZm9yKGxldCB5PWZyb207eTw9dG87eSs9Mil7CiAgICAgICAgICAgIGxldCBkYXJrPTA7CiAgICAgICAgICAgIGZvcihsZXQgeD0wO3g8Y2FudmFzLndpZHRoO3grPTYpewogICAgICAgICAgICAgIGNvbnN0IGk9KCh5LWZyb20pKmNhbnZhcy53aWR0aCt4KSo0OwogICAgICAgICAgICAgIGlmKGJhbmRbaV08MjM1fHxiYW5kW2krMV08MjM1fHxiYW5kW2krMl08MjM1KSBkYXJrKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3Qgc2NvcmU9ZGFyaytNYXRoLmFicyh5LWJvdHRvbSkvMTAwOwogICAgICAgICAgICBpZihzY29yZTxsZWFzdCl7bGVhc3Q9c2NvcmU7YmVzdD15O30KICAgICAgICAgIH0KICAgICAgICAgIGJvdHRvbT1iZXN0OwogICAgICAgIH0KICAgICAgICBjb25zdCBoZWlnaHQ9Ym90dG9tLXRvcDsKICAgICAgICBjb25zdCB0aWxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO3RpbGUud2lkdGg9Y2FudmFzLndpZHRoO3RpbGUuaGVpZ2h0PWhlaWdodDsKICAgICAgICB0aWxlLmdldENvbnRleHQoJzJkJykuZHJhd0ltYWdlKGNhbnZhcywwLHRvcCxjYW52YXMud2lkdGgsaGVpZ2h0LDAsMCxjYW52YXMud2lkdGgsaGVpZ2h0KTsKICAgICAgICBhZGRJbWFnZShgcXVlc3Rpb24tJHtudW1iZXJ9LSR7cGFydH0ucG5nYCxkYXRhQnl0ZXModGlsZS50b0RhdGFVUkwoJ2ltYWdlL3BuZycpKSx0aWxlLndpZHRoLHRpbGUuaGVpZ2h0LGDnrKwke251bWJlcn3popjnrKwke3BhcnR96YOo5YiGYCk7CiAgICAgICAgdG9wPWJvdHRvbTtwYXJ0Kys7CiAgICAgIH0KICAgIH07CiAgICBsZXQgbGFzdFNlY3Rpb249JycsbGFzdFBhcnQ9bnVsbDsKICAgIGNvbnN0IGNlbnRlclBhcGVyPXNvdXJjZS5tYXRjaGVzKCdhcnRpY2xlLnBhcGVyLWNudCcpOwogICAgY29uc3Qgc2hvd249bm9kZT0+ISFub2RlICYmICFub2RlLmNsb3Nlc3QoJ1toaWRkZW5dJykgJiYgbm9kZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aD4wICYmIGdldENvbXB1dGVkU3R5bGUobm9kZSkudmlzaWJpbGl0eSE9PSdoaWRkZW4nOwogICAgY29uc3QgdmlzaWJsZVRleHQ9c2VsZWN0b3I9Pntjb25zdCBub2RlPXNvdXJjZS5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTtyZXR1cm4gc2hvd24obm9kZSk/bm9kZS50ZXh0Q29udGVudC50cmltKCk6Jyc7fTsKICAgIHRyeSB7CiAgICAgIGF3YWl0IGRvY3VtZW50LmZvbnRzLnJlYWR5OwogICAgICBpZihjZW50ZXJQYXBlcil7CiAgICAgICAgY29uc3QgbWFyaz12aXNpYmxlVGV4dCgnI3B1aV9tYXJrdGFnJyk7CiAgICAgICAgaWYobWFyaykgYm9keS5wdXNoKHBhcmEobWFyaywyMCxmYWxzZSwncmlnaHQnKSk7CiAgICAgIH0KICAgICAgYm9keS5wdXNoKHBhcmEocGFwZXJUaXRsZSwzMCx0cnVlLGNlbnRlclBhcGVyPydjZW50ZXInOicnKSk7CiAgICAgIGlmKGNlbnRlclBhcGVyKXsKICAgICAgICBjb25zdCBzdWJ0aXRsZT12aXNpYmxlVGV4dCgnI3B1aV9zdWJ0aXRsZScpLHRlc3RJbmZvPXZpc2libGVUZXh0KCcjcHVpX3Rlc3RpbmZvJyk7CiAgICAgICAgaWYoc3VidGl0bGUpIGJvZHkucHVzaChwYXJhKHN1YnRpdGxlLDI0LGZhbHNlLCdjZW50ZXInKSk7CiAgICAgICAgaWYodGVzdEluZm8pIGJvZHkucHVzaChwYXJhKHRlc3RJbmZvLDIyLGZhbHNlLCdjZW50ZXInKSk7CiAgICAgICAgY29uc3Qgc3R1ZGVudD12aXNpYmxlVGV4dCgnI3B1aV9zdHVkZW50aW5wdXQnKTsKICAgICAgICBpZihzdHVkZW50KSBib2R5LnB1c2gocGFyYShzdHVkZW50LDIwKSk7CiAgICAgICAgY29uc3Qgc2NvcmU9c291cmNlLnF1ZXJ5U2VsZWN0b3IoJyNwdWlfc2NvcmUnKTsKICAgICAgICBpZihzaG93bihzY29yZSkpIGZvcihjb25zdCByb3cgb2Ygc2NvcmUucXVlcnlTZWxlY3RvckFsbCgndHInKSl7CiAgICAgICAgICBjb25zdCBjZWxscz1bLi4ucm93LmNoaWxkcmVuXS5tYXAoY2VsbD0+Y2VsbC50ZXh0Q29udGVudC50cmltKCkpLmZpbHRlcihCb29sZWFuKTsKICAgICAgICAgIGlmKGNlbGxzLmxlbmd0aCkgYm9keS5wdXNoKHBhcmEoY2VsbHMuam9pbign44CAJyksMjApKTsKICAgICAgICB9CiAgICAgICAgY29uc3Qgbm90aWNlPXNvdXJjZS5xdWVyeVNlbGVjdG9yKCcjcHVpX25vdGljZScpOwogICAgICAgIGlmKHNob3duKG5vdGljZSkpewogICAgICAgICAgY29uc3QgdGlwPW5vdGljZS5xdWVyeVNlbGVjdG9yKCcubm90aWNlLXRpcCcpLG5vdGU9bm90aWNlLnF1ZXJ5U2VsZWN0b3IoJyNwdWlfbm90aWNldGV4dCcpOwogICAgICAgICAgaWYoc2hvd24odGlwKSAmJiB0aXAudGV4dENvbnRlbnQudHJpbSgpKSBib2R5LnB1c2gocGFyYSh0aXAudGV4dENvbnRlbnQudHJpbSgpLDIwKSk7CiAgICAgICAgICBpZihzaG93bihub3RlKSkgYm9keS5wdXNoKC4uLmVkaXRhYmxlQ29udGVudChub3RlKSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZvcihsZXQgaT0wO2k8cXVlc3Rpb25zLmxlbmd0aDtpKyspIHsKICAgICAgICBjb25zdCBxPXF1ZXN0aW9uc1tpXTsKICAgICAgICBpZihjZW50ZXJQYXBlcil7CiAgICAgICAgICBjb25zdCBwYXJ0PXEuY29udGVudC5jbG9zZXN0KCcucGFwZXItcGFydCcpOwogICAgICAgICAgaWYocGFydCAmJiBwYXJ0IT09bGFzdFBhcnQpewogICAgICAgICAgICBjb25zdCBoZWFkaW5nPXBhcnQucXVlcnlTZWxlY3RvcignOnNjb3BlID4gLnBhcnQtaGVhZCA+IC5wYXJ0LWhlYWQtYm94Jyk7CiAgICAgICAgICAgIGNvbnN0IG5hbWU9aGVhZGluZz8ucXVlcnlTZWxlY3RvcignLnBhcnQtbmFtZScpLG5vdGU9aGVhZGluZz8ucXVlcnlTZWxlY3RvcignLnBhcnQtbm90ZScpOwogICAgICAgICAgICBpZihzaG93bihuYW1lKSAmJiBuYW1lLnRleHRDb250ZW50LnRyaW0oKSkgYm9keS5wdXNoKHBhcmEobmFtZS50ZXh0Q29udGVudC50cmltKCksMjUsdHJ1ZSwnY2VudGVyJykpOwogICAgICAgICAgICBpZihzaG93bihub3RlKSAmJiBub3RlLnRleHRDb250ZW50LnRyaW0oKSkgYm9keS5wdXNoKC4uLmVkaXRhYmxlQ29udGVudChub3RlKSk7CiAgICAgICAgICAgIGxhc3RQYXJ0PXBhcnQ7CiAgICAgICAgICAgIGxhc3RTZWN0aW9uPScnOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZihxLnNlY3Rpb24hPT1sYXN0U2VjdGlvbil7Ym9keS5wdXNoKHBhcmEocS5zZWN0aW9uLDI1LHRydWUpKTtsYXN0U2VjdGlvbj1xLnNlY3Rpb247fQogICAgICAgIHN0YXR1cyhg5q2j5Zyo55Sf5oiQIFdvcmTvvJrnrKwgJHtpKzF9LyR7cXVlc3Rpb25zLmxlbmd0aH0g6aKYYCk7CiAgICAgICAgaWYoY2FuRWRpdEFzUHJvc2UocS5jb250ZW50KSl7CiAgICAgICAgICBib2R5LnB1c2goLi4uZWRpdGFibGVDb250ZW50KHEuY29udGVudCkpOwogICAgICAgICAgYm9keS5wdXNoKCc8dzpwPjx3OnBQcj48dzpzcGFjaW5nIHc6YWZ0ZXI9IjEyMCIvPjwvdzpwUHI+PC93OnA+Jyk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaG9zdC5pbm5lckhUTUw9Jyc7CiAgICAgICAgY29uc3Qgd3JhcD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTt3cmFwLmNsYXNzTmFtZT0nc2VjLWxpc3QnOwogICAgICAgIGNvbnN0IGl0ZW09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7aXRlbS5jbGFzc05hbWU9J3RrLXF1ZXN0LWl0ZW0gcXVlc3Jvb3QnOwogICAgICAgIGNvbnN0IHF1ZXN0aW9uPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO3F1ZXN0aW9uLmNsYXNzTmFtZT0nd3JhcHBlciBxdWVzZGl2JzsKICAgICAgICBjb25zdCBjb250ZW50PXEuY29udGVudC5jbG9uZU5vZGUodHJ1ZSk7Y29udGVudC5zdHlsZS5jc3NUZXh0Kz0nO3dpZHRoOjc4MHB4IWltcG9ydGFudDttYXgtd2lkdGg6NzgwcHghaW1wb3J0YW50O2JveC1zaXppbmc6Ym9yZGVyLWJveCFpbXBvcnRhbnQ7b3ZlcmZsb3c6dmlzaWJsZSFpbXBvcnRhbnQ7YmFja2dyb3VuZDojZmZmIWltcG9ydGFudDtjb2xvcjojMTExIWltcG9ydGFudCc7CiAgICAgICAgcXVlc3Rpb24uYXBwZW5kQ2hpbGQoY29udGVudCk7aXRlbS5hcHBlbmRDaGlsZChxdWVzdGlvbik7d3JhcC5hcHBlbmRDaGlsZChpdGVtKTtob3N0LmFwcGVuZENoaWxkKHdyYXApOwogICAgICAgIGF3YWl0IGlubGluZUltYWdlcyhjb250ZW50LGNhY2hlKTsKICAgICAgICBjb25zdCBjYW52YXM9YXdhaXQgaHRtbDJjYW52YXMoY29udGVudCx7YmFja2dyb3VuZENvbG9yOicjZmZmZmZmJyxzY2FsZToyLjUsdXNlQ09SUzp0cnVlLGFsbG93VGFpbnQ6ZmFsc2UsbG9nZ2luZzpmYWxzZSxzY3JvbGxYOjAsc2Nyb2xsWTowLHdpbmRvd1dpZHRoOjEwMDB9KTsKICAgICAgICBpZighY2FudmFzLndpZHRofHwhY2FudmFzLmhlaWdodCkgdGhyb3cgbmV3IEVycm9yKGDnrKwgJHtpKzF9IOmimOeUn+aIkOS6huepuueZveWbvueJh+OAgmApOwogICAgICAgIGFkZENhbnZhcyhjYW52YXMsaSsxKTsKICAgICAgICBib2R5LnB1c2goJzx3OnA+PHc6cFByPjx3OnNwYWNpbmcgdzphZnRlcj0iODAiLz48L3c6cFByPjwvdzpwPicpOwogICAgICB9CiAgICAgIGJvZHkucHVzaCgnPHc6c2VjdFByPjx3OnBnU3ogdzp3PSIxMTkwNiIgdzpoPSIxNjgzOCIvPjx3OnBnTWFyIHc6dG9wPSI5MDAiIHc6cmlnaHQ9Ijg1MCIgdzpib3R0b209IjkwMCIgdzpsZWZ0PSI4NTAiIHc6aGVhZGVyPSI0NTAiIHc6Zm9vdGVyPSI0NTAiIHc6Z3V0dGVyPSIwIi8+PC93OnNlY3RQcj4nKTsKICAgICAgY29uc3QgZG9jPWA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+PHc6ZG9jdW1lbnQgeG1sbnM6dz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3dvcmRwcm9jZXNzaW5nbWwvMjAwNi9tYWluIiB4bWxuczpyPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzIiB4bWxuczp3cD0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL2RyYXdpbmdtbC8yMDA2L3dvcmRwcm9jZXNzaW5nRHJhd2luZyI+PHc6Ym9keT4ke2JvZHkuam9pbignJyl9PC93OmJvZHk+PC93OmRvY3VtZW50PmA7CiAgICAgIGNvbnN0IHJlbHM9YDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz48UmVsYXRpb25zaGlwcyB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9yZWxhdGlvbnNoaXBzIj4ke21lZGlhLm1hcChtPT5gPFJlbGF0aW9uc2hpcCBJZD0icklkJHttLmlkfSIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9pbWFnZSIgVGFyZ2V0PSJtZWRpYS8ke20ubmFtZX0iLz5gKS5qb2luKCcnKX08L1JlbGF0aW9uc2hpcHM+YDsKICAgICAgZmlsZXMudW5zaGlmdCh7bmFtZTonW0NvbnRlbnRfVHlwZXNdLnhtbCcsZGF0YTp1OCgnPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PjxUeXBlcyB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9jb250ZW50LXR5cGVzIj48RGVmYXVsdCBFeHRlbnNpb249InJlbHMiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5yZWxhdGlvbnNoaXBzK3htbCIvPjxEZWZhdWx0IEV4dGVuc2lvbj0ieG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24veG1sIi8+PERlZmF1bHQgRXh0ZW5zaW9uPSJwbmciIENvbnRlbnRUeXBlPSJpbWFnZS9wbmciLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii93b3JkL2RvY3VtZW50LnhtbCIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50Lm1haW4reG1sIi8+PC9UeXBlcz4nKX0se25hbWU6J19yZWxzLy5yZWxzJyxkYXRhOnU4KCc8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+PFJlbGF0aW9uc2hpcHMgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvcmVsYXRpb25zaGlwcyI+PFJlbGF0aW9uc2hpcCBJZD0icklkMSIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9vZmZpY2VEb2N1bWVudCIgVGFyZ2V0PSJ3b3JkL2RvY3VtZW50LnhtbCIvPjwvUmVsYXRpb25zaGlwcz4nKX0se25hbWU6J3dvcmQvZG9jdW1lbnQueG1sJyxkYXRhOnU4KGRvYyl9LHtuYW1lOid3b3JkL19yZWxzL2RvY3VtZW50LnhtbC5yZWxzJyxkYXRhOnU4KHJlbHMpfSk7CiAgICAgIGNvbnN0IGJsb2I9emlwKGZpbGVzKSxmaWxlbmFtZT0ocGFwZXJUaXRsZS5yZXBsYWNlKC9bXFwvOio/Ijw+fF0vZywnXycpfHwn57uE5Y23572R6K+V5Y23JykrJy5kb2N4JzsKICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuX19adWp1YW5BcHBTYXZlRG9jeCA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgIGF3YWl0IHdpbmRvdy5fX1p1anVhbkFwcFNhdmVEb2N4KGJsb2IsZmlsZW5hbWUpOwogICAgICB9IGVsc2UgewogICAgICAgIGNvbnN0IHVybD1VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpLGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogICAgICAgIGEuaHJlZj11cmw7YS5kb3dubG9hZD1maWxlbmFtZTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO2EuY2xpY2soKTthLnJlbW92ZSgpO3NldFRpbWVvdXQoKCk9PlVSTC5yZXZva2VPYmplY3RVUkwodXJsKSw2MDAwMCk7CiAgICAgIH0KICAgICAgc3RhdHVzKGDlrozmiJDvvJoke3F1ZXN0aW9ucy5sZW5ndGh9IOmBk+mimOW3suWvvOWHuuS4uuS4gOS4qiBXb3JkIOaWh+S7tuOAgmApOwogICAgfSBmaW5hbGx5IHtob3N0LnJlbW92ZSgpO2J1c3koZmFsc2UpO30KICB9CiAgcGFuZWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLGFzeW5jIGU9Pntjb25zdCBhY3Rpb249ZS50YXJnZXQ/LmRhdGFzZXQ/LmFjdGlvbjtpZihhY3Rpb249PT0nY2xvc2UnKXBhbmVsLnJlbW92ZSgpO2lmKGFjdGlvbj09PSdwZGYnfHxhY3Rpb249PT0nZG9jeCcpdHJ5e2F3YWl0IChhY3Rpb249PT0ncGRmJz9wZGYoKTpkb2N4KCkpfWNhdGNoKGVycil7Y29uc29sZS5lcnJvcign57uE5Y23572R5a+85Ye65aSx6LSlJyxlcnIpO3N0YXR1cygn5a+85Ye65aSx6LSl77yaJytlcnIubWVzc2FnZSk7YWxlcnQoKGFjdGlvbj09PSdwZGYnPydQREYnOidXb3JkJykrJyDlr7zlh7rlpLHotKXvvJonK2Vyci5tZXNzYWdlKTt9fSk7Cn0pKCk7Cg=="),c=>c.charCodeAt(0))))})()